import { defineConfig, devices } from "@playwright/test"; const apiMode = process.env.VITE_API_MODE === "mock" ? "mock" : "server"; const webServerPort = apiMode === "mock" ? 8889 : 8888; const serverTestMatch = [ "**/server-mode-boundary.spec.ts", "**/smoke.spec.ts", "**/auth.spec.ts", "**/accessibility-shell.spec.ts", ] as const; const mockTestMatch = ["**/mock-preview-shell.spec.ts", "**/mock-mode-boundary.spec.ts"] as const; export default defineConfig({ testDir: "./tests/e2e", webServer: { command: apiMode === "mock" ? "npm run dev:mock" : "npm run dev", env: { VITE_API_MODE: apiMode }, url: `http://127.0.0.1:${webServerPort}`, reuseExistingServer: !process.env.CI && apiMode === "server", }, use: { baseURL: `http://127.0.0.1:${webServerPort}`, }, testMatch: apiMode === "mock" ? [...mockTestMatch] : [...serverTestMatch], projects: [ { name: "chromium", use: { ...devices["Desktop Chrome"] } }, { name: "webkit", use: { ...devices["Desktop Safari"] } }, { name: "mobile-chrome", use: { ...devices["Pixel 5"] } }, { name: "mobile-safari", use: { ...devices["iPhone 12"] } }, ], });