import { defineConfig, devices } from "@playwright/test"; export default defineConfig({ testDir: "./e2e", // _capture-screenshots.spec.ts is evidence-generation tooling, not a regression test — // it mutates demo data via a reset and is run explicitly, not as part of the suite. testIgnore: process.env.CAPTURE_EVIDENCE === "1" ? undefined : "**/_*.spec.ts", timeout: 30_000, // CI exercises the browser while image scans and container services share the // same runner. Keep assertions strict, but allow successful API-backed route // transitions enough time to render under that bounded load. expect: { timeout: 15_000 }, fullyParallel: false, workers: 1, snapshotPathTemplate: "{testDir}/__screenshots__/{arg}{ext}", reporter: [["list"], ["html", { open: "never", outputFolder: "playwright-report" }]], use: { baseURL: process.env.MOBILITYOPS_PUBLIC_URL ?? "http://localhost:1228", // Optional: point at a pre-installed Chromium (CI images, sandboxes) instead of the // Playwright-managed download. ...(process.env.PW_CHROMIUM_PATH ? { launchOptions: { executablePath: process.env.PW_CHROMIUM_PATH } } : {}), trace: "retain-on-failure", screenshot: "only-on-failure", }, projects: [ { name: "chromium", use: { ...devices["Desktop Chrome"] }, }, ], });