import { defineConfig, devices } from "@playwright/test"; export default defineConfig({ testDir: "./e2e", fullyParallel: true, forbidOnly: !!process.env.CI, retries: process.env.CI ? 2 : 0, workers: process.env.CI ? 1 : undefined, reporter: [["html"], ["list"]], timeout: 30_000, use: { baseURL: process.env.BASE_URL ?? "http://localhost:8000", actionTimeout: 10_000, trace: "on-first-retry", screenshot: "only-on-failure", }, projects: [ { name: "setup", testMatch: /auth\.setup\.ts/, }, { name: "public", testMatch: /public\.spec\.ts/, use: { ...devices["Desktop Chrome"] }, }, { name: "authenticated", testMatch: /\.spec\.ts$/, testIgnore: /public\.spec\.ts$/, dependencies: ["setup"], use: { ...devices["Desktop Chrome"], storageState: "e2e/.auth/user.json", }, }, ], });