import { defineConfig, devices } from '@playwright/test'; import { config } from 'dotenv'; config({ path: '.env.local' }); export default defineConfig({ testDir: './tests/playwright', outputDir: './tests/test-results', fullyParallel: false, forbidOnly: !!process.env.CI, retries: process.env.CI ? 2 : 0, workers: 1, reporter: [['html', { open: 'never', outputFolder: 'tests/playwright-report' }], ['line']], use: { baseURL: 'http://localhost:3000', trace: 'on-first-retry', screenshot: 'only-on-failure', video: 'retain-on-failure', locale: 'nl-NL', timezoneId: 'Europe/Amsterdam', }, projects: [ // Auth setup - runs first, creates storageState { name: 'setup', testMatch: /auth\.setup\.ts/, }, // All E2E tests - depend on setup, start authenticated { name: 'chromium', use: { ...devices['Desktop Chrome'], storageState: 'tests/playwright/.auth/user.json', }, dependencies: ['setup'], }, ], });