import { defineConfig, devices } from "@playwright/test"; export default defineConfig({ testDir: "./e2e", globalSetup: "./e2e/support/migrate.ts", fullyParallel: false, workers: 1, reporter: [["list"], ["html", { open: "never" }]], use: { baseURL: "http://127.0.0.1:5173", screenshot: "only-on-failure", trace: "retain-on-failure", video: "retain-on-failure", }, webServer: { command: "pnpm run e2e:prepare && pnpm run dev --host 127.0.0.1 --port 5173", env: { BETTER_AUTH_SECRET: "e2e-secret-00000000000000000000000000000000", BETTER_AUTH_URL: "http://127.0.0.1:5173", E2E: "1", }, reuseExistingServer: !process.env.CI, timeout: 120_000, // A static asset: the app's pages need the e2e database, which global // setup migrates only once the server is up. url: "http://127.0.0.1:5173/favicon.ico", }, projects: [ { name: "setup", testMatch: /.*\.setup\.ts/, }, { name: "chromium", dependencies: ["setup"], testIgnore: /.*\.setup\.ts/, use: { ...devices["Desktop Chrome"], storageState: "e2e/.auth/admin.json", }, }, ], });