b3a7f98e5a
CI / E2E Cloudflare (4/8) (push) Failing after 0s
CI / E2E Cloudflare (8/8) (push) Failing after 1s
CI / Lint (push) Failing after 1s
Auto Extract / Extract (push) Failing after 4s
CI / Version Check (push) Failing after 9s
CI / Integration Tests (push) Failing after 1s
CI / E2E tests (1/8) (push) Failing after 1s
CI / E2E tests (2/8) (push) Failing after 2s
CI / E2E tests (3/8) (push) Failing after 2s
CI / Browser Tests (push) Failing after 1s
CI / E2E tests (5/8) (push) Failing after 1s
CI / E2E Cloudflare (2/8) (push) Failing after 2s
CI / Typecheck (push) Failing after 1s
CI / Changeset Validation (push) Failing after 2s
CI / E2E Cloudflare (5/8) (push) Failing after 1s
CI / E2E Cloudflare (6/8) (push) Failing after 1s
CI / E2E Cloudflare (7/8) (push) Failing after 1s
CodeQL / Analyze (javascript-typescript) (push) Failing after 1s
Format / Format (push) Failing after 0s
CodeQL / Analyze (actions) (push) Failing after 4s
CI / E2E tests (4/8) (push) Failing after 1s
CI / E2E tests (6/8) (push) Failing after 1s
CI / E2E tests (7/8) (push) Failing after 2s
CI / E2E tests (8/8) (push) Failing after 1s
CI / E2E Cloudflare (1/8) (push) Failing after 1s
CI / E2E Cloudflare (3/8) (push) Failing after 2s
Preview Releases / Publish Preview (push) Failing after 0s
zizmor / Run zizmor (push) Failing after 1s
Release / Release (push) Failing after 2s
CI / Smoke Tests (push) Failing after 5m36s
CI / Tests (push) Failing after 6m36s
Release / Sync Templates (push) Has been skipped
CI / E2E Tests (push) Has been cancelled
55 lines
1.3 KiB
TypeScript
55 lines
1.3 KiB
TypeScript
/**
|
|
* E2E Test Fixtures
|
|
*
|
|
* Extends Playwright's test with custom fixtures for EmDash admin testing.
|
|
* The server is started by global-setup.ts — these fixtures just provide
|
|
* the AdminPage helper and server context to each test.
|
|
*/
|
|
|
|
import { readFileSync } from "node:fs";
|
|
import { tmpdir } from "node:os";
|
|
import { join } from "node:path";
|
|
|
|
import { test as base } from "@playwright/test";
|
|
|
|
import { AdminPage } from "./admin";
|
|
|
|
export { AdminPage } from "./admin";
|
|
|
|
const SERVER_INFO_PATH = join(tmpdir(), "emdash-pw-server.json");
|
|
|
|
interface ServerInfo {
|
|
pid: number;
|
|
workDir: string;
|
|
baseUrl: string;
|
|
marketplaceUrl: string;
|
|
token: string;
|
|
sessionCookie: string;
|
|
collections: string[];
|
|
contentIds: Record<string, string[]>;
|
|
mediaIds: Record<string, string>;
|
|
}
|
|
|
|
function getServerInfo(): ServerInfo {
|
|
return JSON.parse(readFileSync(SERVER_INFO_PATH, "utf-8"));
|
|
}
|
|
|
|
/**
|
|
* Extended test with admin page fixture and server context
|
|
*/
|
|
export const test = base.extend<{
|
|
admin: AdminPage;
|
|
serverInfo: ServerInfo;
|
|
}>({
|
|
// eslint-disable-next-line no-empty-pattern
|
|
serverInfo: async ({}, use) => {
|
|
await use(getServerInfo());
|
|
},
|
|
admin: async ({ page }, use) => {
|
|
const admin = new AdminPage(page);
|
|
await use(admin);
|
|
},
|
|
});
|
|
|
|
export { expect } from "@playwright/test";
|