import { defineConfig, devices } from "@playwright/test"; const localBrowser = process.env.PLAYWRIGHT_USE_SYSTEM_CHROME === "1" ? { channel: "chrome" as const } : {}; export default defineConfig({ testDir: "./tests/e2e", outputDir: "../test-artifacts/playwright-results", reporter: [["list"], ["html", { outputFolder: "../test-artifacts/playwright-report", open: "never" }]], use: { baseURL: "http://127.0.0.1:3008", trace: "retain-on-failure", screenshot: "only-on-failure" }, projects: [ { name: "desktop-chromium", use: { ...devices["Desktop Chrome"], ...localBrowser } }, { name: "tablet-chromium", use: { ...devices["Desktop Chrome"], ...localBrowser, viewport: { width: 1024, height: 900 } } }, { name: "mobile-chromium", use: { ...devices["Pixel 7"], ...localBrowser } } ], webServer: [ { command: "../backend/.venv/bin/uvicorn app.main:app --app-dir ../backend --host 127.0.0.1 --port 8788", url: "http://127.0.0.1:8788/api/health", reuseExistingServer: true, timeout: 30_000 }, { command: "npm start", url: "http://127.0.0.1:3008", reuseExistingServer: true, timeout: 60_000 } ] });