Files
serverAppConfigs/tests/e2e/playwright.config.ts
T
Frank 9c508218e9 e2e: scope the FrankBook-Pro leg to its own trigger-gated Playwright project
The 11-admin spec walked links that terminate on FrankBook-Pro
(192.168.0.112), which sleeps when idle — every deploy gate timed out
there (measured 2026-10-05, two deploy windows). Split: the frankbook
links move to tests/e2e/specs/19-frankbook.spec.ts under a frankbook
project that run.sh excludes by default and deploy.sh triggers ONLY
when a frankbook blast-radius path changed (the spec, frankbook-pro/,
the homepage registry, the Caddyfile arr vhosts). deploy.sh computes
the trigger from the same BASE..HEAD revision range the plan uses.
2026-10-05 18:04:02 -07:00

61 lines
1.9 KiB
TypeScript

import { defineConfig } from "@playwright/test";
import { BASE_URL, REAL_UA } from "./lib/env";
export default defineConfig({
testDir: "./specs",
timeout: 90_000,
expect: { timeout: 20_000 },
retries: 1,
workers: 2,
fullyParallel: false,
reporter: [["list"]],
outputDir: "./test-results",
use: {
baseURL: BASE_URL,
userAgent: REAL_UA,
ignoreHTTPSErrors: true,
viewport: { width: 1440, height: 900 },
trace: "retain-on-failure",
},
projects: [
{
name: "setup",
testMatch: /00-auth\.setup\.ts/,
},
{
name: "standard",
// NOTE: specs are matched by NUMBER PREFIX, not globbed. A spec file
// whose prefix is not listed in any project silently never runs — a
// green suite with a test that does not exist. 17- joined on 2026-09-16
// (the hermes vhost, whose upstream is a host address rather than a
// container name, so it needs its own pass condition). 18- joined on
// 2026-09-24 (OpenWebUI SSO through authentik).
testMatch: /(10|12|13|16|17|18)-.*\.spec\.ts/,
use: { storageState: ".auth/qa-e2e.json" },
dependencies: ["setup"],
},
{
name: "admin",
testMatch: /11-.*\.spec\.ts/,
use: { storageState: ".auth/qa-e2e-admin.json" },
dependencies: ["setup"],
},
{
name: "guest",
testMatch: /(14|15)-.*\.spec\.ts/,
use: { storageState: { cookies: [], origins: [] } },
},
{
name: "frankbook",
// The *arr/qBittorrent walk (19-). Excluded from default runs and from
// the deploy e2e gate unless a frankbook trigger path changed — the
// links terminate on FrankBook-Pro, which sleeps (see tests/e2e/run.sh
// and scripts/deploy.sh). Matched by number prefix like every project
// here; joined 2026-10-05.
testMatch: /19-.*\.spec\.ts/,
use: { storageState: ".auth/qa-e2e-admin.json" },
dependencies: ["setup"],
},
],
});