import { defineConfig, devices } from '@playwright/test'; export default defineConfig({ testDir: './tests', fullyParallel: true, forbidOnly: !!process.env.CI, retries: process.env.CI ? 2 : 0, workers: process.env.CI ? 1 : undefined, reporter: 'html', use: { baseURL: 'http://localhost:3000', trace: 'on-first-retry', }, projects: [ // Setup project { name: 'setup', testMatch: /.*\.setup\.ts/, }, // Chromium tests using authenticated state { name: 'chromium', use: { ...devices['Desktop Chrome'], // Use the saved authenticated state storageState: '.playwright/.auth/user.json', }, dependencies: ['setup'], }, ], // Run dev server before tests webServer: { command: 'pnpm dev', url: 'http://localhost:3000', reuseExistingServer: !process.env.CI, }, });