import { defineConfig, devices } from '@playwright/test' export default defineConfig({ testDir: './e2e', fullyParallel: false, forbidOnly: !!process.env.CI, retries: process.env.CI ? 2 : 0, workers: 1, globalSetup: './e2e/global-setup.ts', globalTeardown: './e2e/global-teardown.ts', reporter: 'html', snapshotPathTemplate: '{testDir}/__screenshots__/{projectName}/{testFilePath}/{arg}{ext}', expect: { toHaveScreenshot: { maxDiffPixelRatio: 0.005 }, }, use: { baseURL: 'http://localhost:5173', trace: 'on-first-retry', }, projects: [ // Desktop browsers { name: 'chromium', use: { ...devices['Desktop Chrome'] } }, { name: 'firefox', use: { ...devices['Desktop Firefox'] } }, { name: 'webkit', use: { ...devices['Desktop Safari'] } }, // Mobile viewports { name: 'iphone14', use: { ...devices['iPhone 14'], viewport: { width: 390, height: 844 }, }, }, { name: 'galaxy-s21', use: { userAgent: 'Mozilla/5.0 (Linux; Android 12; SM-G991B) AppleWebKit/537.36', viewport: { width: 360, height: 800 }, deviceScaleFactor: 3, isMobile: true, hasTouch: true, }, }, ], webServer: { command: 'pnpm run dev:vite', url: 'http://localhost:5173', reuseExistingServer: true, }, })