Files
OwnCord/Client/playwright.config.admin.ts
T

46 lines
1.5 KiB
TypeScript
Raw Normal View History

import { defineConfig } from "@playwright/test";
/**
* Playwright config for the ADMIN PANEL e2e suite — the server-embedded SPA
* (Server/admin/static/index.html), driven against a REAL server started by
* tests/e2e/admin/start-server.sh (fresh temp data dir, TLS off, loopback).
*
* Unlike the mocked-Tauri web suite this exercises the true stack: chi
* router, admin middleware/gates, SQLite, and the SPA itself. The journey is
* stateful by design (first-run wizard creates the owner the later tests log
* in as), so it runs serially in one worker against one server instance.
*
* Usage: npm run test:e2e:admin (requires the Go toolchain)
*/
const PORT = process.env.OWNCORD_ADMIN_E2E_PORT ?? "18446";
export default defineConfig({
testDir: "./tests/e2e/admin",
timeout: 30_000,
expect: { timeout: 5_000 },
fullyParallel: false,
workers: 1,
retries: process.env.CI ? 2 : 1,
reporter: process.env.CI
? [
["html", { open: "never" }],
["junit", { outputFile: "test-results/admin-junit.xml" }],
]
: "html",
use: {
baseURL: `http://127.0.0.1:${PORT}`,
screenshot: "only-on-failure",
trace: "on-first-retry",
contextOptions: { reducedMotion: "reduce" },
},
webServer: {
command: "bash tests/e2e/admin/start-server.sh",
url: `http://127.0.0.1:${PORT}/health`,
reuseExistingServer: !process.env.CI,
// First run compiles the Go server; CI cold caches need the headroom.
timeout: 240_000,
},
});