import { defineConfig, devices } from '@playwright/test'; // E2E_METRO_PORT is set dynamically by global-setup.ts after finding a free port // This allows multiple test runs in parallel across different worktrees const baseURL = process.env.E2E_BASE_URL ?? `http://localhost:${process.env.E2E_METRO_PORT ?? '8081'}`; export default defineConfig({ testDir: './e2e', globalSetup: './e2e/global-setup.ts', timeout: 60_000, expect: { timeout: 10_000, }, fullyParallel: true, retries: process.env.CI ? 1 : 0, reporter: [['list']], use: { baseURL, trace: 'retain-on-failure', screenshot: 'only-on-failure', video: 'retain-on-failure', }, projects: [ { name: 'Desktop Chrome', use: { ...devices['Desktop Chrome'] }, }, ], // Note: Metro is started by global-setup.ts on a dynamic port to allow parallel test runs });