// ABOUTME: Playwright E2E test configuration for browser-based testing. // ABOUTME: Configures Chromium-only headless testing with automatic dev server startup. import { defineConfig, devices } from "@playwright/test"; export default defineConfig({ // Test directory for E2E tests testDir: "./e2e", // Run tests in parallel fullyParallel: true, // Fail the build on CI if you accidentally left test.only in the source code forbidOnly: !!process.env.CI, // Retry failed tests on CI only retries: process.env.CI ? 2 : 0, // Limit parallel workers on CI to avoid resource issues workers: process.env.CI ? 1 : undefined, // Reporter configuration reporter: [["html", { open: "never" }], ["list"]], // Shared settings for all projects use: { // Base URL for navigation actions like page.goto('/') baseURL: "http://localhost:3000", // Collect trace on first retry for debugging trace: "on-first-retry", // Take screenshot on failure screenshot: "only-on-failure", }, // Configure projects - Chromium only per requirements projects: [{ name: "chromium", use: { ...devices["Desktop Chrome"] } }], // Run dev server before starting tests webServer: { command: "pnpm dev", url: "http://localhost:3000", reuseExistingServer: !process.env.CI, timeout: 120 * 1000, // 2 minutes for Next.js to start }, });