mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-07-14 16:01:13 +03:00
add self-tests for mock override helpers
This commit is contained in:
parent
597dc18c77
commit
06a4d016e4
77
web/e2e/specs/_meta/mock-overrides.spec.ts
Normal file
77
web/e2e/specs/_meta/mock-overrides.spec.ts
Normal file
@ -0,0 +1,77 @@
|
||||
/**
|
||||
* Self-tests for the mock override helpers. Verifies each helper
|
||||
* intercepts the matched URL and returns the expected payload/status.
|
||||
*/
|
||||
|
||||
import { test, expect } from "../../fixtures/frigate-test";
|
||||
import {
|
||||
mockEmpty,
|
||||
mockError,
|
||||
mockDelay,
|
||||
} from "../../helpers/mock-overrides";
|
||||
|
||||
test.describe("Mock Overrides — empty @meta", () => {
|
||||
test("mockEmpty returns []", async ({ page, frigateApp }) => {
|
||||
await mockEmpty(page, "**/api/__meta_test__");
|
||||
await frigateApp.goto("/");
|
||||
const result = await page.evaluate(async () => {
|
||||
const r = await fetch("/api/__meta_test__");
|
||||
return { status: r.status, body: await r.json() };
|
||||
});
|
||||
expect(result.status).toBe(200);
|
||||
expect(result.body).toEqual([]);
|
||||
});
|
||||
});
|
||||
|
||||
test.describe("Mock Overrides — error default @meta", () => {
|
||||
// Match both the collected request error and the browser's console echo.
|
||||
// Using a single alternation regex avoids Playwright's isFixtureTuple
|
||||
// collision with multi-element RegExp arrays.
|
||||
test.use({
|
||||
expectedErrors: [/500.*__meta_test__|Failed to load resource.*500/],
|
||||
});
|
||||
|
||||
test("mockError returns 500 by default", async ({ page, frigateApp }) => {
|
||||
await mockError(page, "**/api/__meta_test__");
|
||||
await frigateApp.goto("/");
|
||||
const status = await page.evaluate(async () => {
|
||||
const r = await fetch("/api/__meta_test__");
|
||||
return r.status;
|
||||
});
|
||||
expect(status).toBe(500);
|
||||
});
|
||||
});
|
||||
|
||||
test.describe("Mock Overrides — error custom status @meta", () => {
|
||||
// The browser emits a "Failed to load resource" console.error for 404s,
|
||||
// which the error collector catches even though 404 is not a 5xx.
|
||||
test.use({
|
||||
expectedErrors: [/Failed to load resource.*404|404.*__meta_test_404__/],
|
||||
});
|
||||
|
||||
test("mockError accepts a custom status", async ({ page, frigateApp }) => {
|
||||
await mockError(page, "**/api/__meta_test_404__", 404);
|
||||
await frigateApp.goto("/");
|
||||
const status = await page.evaluate(async () => {
|
||||
const r = await fetch("/api/__meta_test_404__");
|
||||
return r.status;
|
||||
});
|
||||
expect(status).toBe(404);
|
||||
});
|
||||
});
|
||||
|
||||
test.describe("Mock Overrides — delay @meta", () => {
|
||||
test("mockDelay delays response by the requested ms", async ({
|
||||
page,
|
||||
frigateApp,
|
||||
}) => {
|
||||
await mockDelay(page, "**/api/__meta_test_delay__", 300, ["delayed"]);
|
||||
await frigateApp.goto("/");
|
||||
const elapsed = await page.evaluate(async () => {
|
||||
const start = performance.now();
|
||||
await fetch("/api/__meta_test_delay__");
|
||||
return performance.now() - start;
|
||||
});
|
||||
expect(elapsed).toBeGreaterThanOrEqual(250);
|
||||
});
|
||||
});
|
||||
Loading…
Reference in New Issue
Block a user