-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpw-cross.config.ts
More file actions
34 lines (32 loc) · 1.55 KB
/
Copy pathpw-cross.config.ts
File metadata and controls
34 lines (32 loc) · 1.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import { defineConfig, devices } from '@playwright/test';
// OPTIONAL cross-engine E2E config (test-plan §3.3) — NOT run in CI. CI gates on Chromium
// (playwright.config.ts); this config re-runs the same specs on the Firefox (Gecko) and
// Safari (WebKit) engines, incl. an iPhone emulation, for pre-release manual verification
// of the evergreen baseline (SRS §2.3).
//
// One-time setup: npx playwright install webkit firefox
// sudo npx playwright install-deps # WebKit needs a few host libraries
// Run: npx playwright test --config=pw-cross.config.ts --workers=2
// Or one engine: npx playwright test --config=pw-cross.config.ts --project=webkit --workers=2
// (keep --workers low: parallel WebKit workers starve each other and time out on toBeVisible)
//
// Known quirk: a11y "Expert + light theme" can flake on non-Chromium engines — axe may scan
// mid theme-transition (0.15s) and report blended colors (e.g. #366fed). Verified not a real
// contrast defect: applying the theme pre-paint yields 0 violations on every engine.
const PORT = 5173;
export default defineConfig({
testDir: './e2e',
reporter: 'list',
use: { baseURL: `http://localhost:${PORT}` },
projects: [
{ name: 'firefox', use: { ...devices['Desktop Firefox'] } },
{ name: 'webkit', use: { ...devices['Desktop Safari'] } },
{ name: 'safari-ios', use: { ...devices['iPhone 13'] } },
],
webServer: {
command: 'npm run dev',
url: `http://localhost:${PORT}/architecture-advisor/`,
reuseExistingServer: true,
timeout: 120_000,
},
});