import { defineConfig, devices } from "@playwright/test"; /** * CookieBridge Admin Frontend - Playwright E2E Test Configuration * * Prerequisites: RCA-12 (scaffold), RCA-13 (API), RCA-14 (login), * RCA-15 (dashboard), RCA-16 (cookies), RCA-17 (devices), RCA-18 (settings) * must all be complete before running these tests. * * Usage: * npm run test:e2e — run all tests headless * npm run test:e2e:ui — interactive UI mode * npm run test:e2e:headed — run with browser visible */ export default defineConfig({ testDir: "./tests/e2e", fullyParallel: true, forbidOnly: !!process.env.CI, retries: process.env.CI ? 2 : 0, workers: process.env.CI ? 1 : undefined, reporter: [["html", { open: "never" }], ["list"]], use: { baseURL: process.env.BASE_URL ?? "http://localhost:5173", trace: "on-first-retry", screenshot: "only-on-failure", video: "retain-on-failure", }, projects: [ { name: "chromium", use: { ...devices["Desktop Chrome"] }, }, { name: "firefox", use: { ...devices["Desktop Firefox"] }, }, { name: "webkit", use: { ...devices["Desktop Safari"] }, }, { name: "mobile-chrome", use: { ...devices["Pixel 5"] }, }, { name: "mobile-safari", use: { ...devices["iPhone 12"] }, }, { name: "tablet", use: { ...devices["iPad Pro 11"] }, }, ], webServer: { command: "npm run dev", url: "http://localhost:5173", reuseExistingServer: !process.env.CI, timeout: 30_000, }, });