import { defineConfig, devices } from '@playwright/test'; const e2ePort = process.env['E2E_PORT'] ?? '4200'; export default defineConfig({ testDir: './e2e', fullyParallel: true, forbidOnly: Boolean(process.env['CI']), retries: process.env['CI'] ? 2 : 0, workers: process.env['CI'] ? 1 : undefined, reporter: process.env['CI'] ? 'line' : 'html', use: { baseURL: `http://127.0.0.1:${e2ePort}`, screenshot: 'only-on-failure', trace: 'on-first-retry', }, projects: [ { name: 'mobile', use: { ...devices['Desktop Chrome'], viewport: { width: 360, height: 800 }, }, }, { name: 'tablet', use: { ...devices['Desktop Chrome'], viewport: { width: 768, height: 1024 }, }, }, { name: 'desktop', use: { ...devices['Desktop Chrome'], viewport: { width: 1280, height: 800 }, }, }, ], webServer: { command: `bun run start -- --host 127.0.0.1 --port ${e2ePort}`, url: `http://127.0.0.1:${e2ePort}`, reuseExistingServer: !process.env['CI'], timeout: 120_000, }, });