All files / web playwright.config.ts

0% Statements 0/44
0% Branches 0/1
0% Functions 0/1
0% Lines 0/44

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45                                                                                         
import { defineConfig, devices } from '@playwright/test'

const port = parseInt(process.env.PORT || '3002', 10)

export default defineConfig({
  testDir: './e2e',
  fullyParallel: true,
  forbidOnly: !!process.env.CI,
  retries: process.env.CI ? 2 : 0,
  workers: process.env.CI ? 1 : 4,
  timeout: 15_000,
  reporter: 'html',
  use: {
    baseURL: process.env.BASE_URL || `http://localhost:${port}`,
    trace: 'on-first-retry',
  },

  projects: [
    { name: 'auth-setup', testMatch: /auth\.setup\.ts/ },
    {
      name: 'tier-setup',
      testMatch: /tier\.setup\.ts/,
      use: { storageState: 'e2e/.auth/admin.json' },
      dependencies: ['auth-setup'],
    },
    {
      name: 'chromium',
      use: {
        ...devices['Desktop Chrome'],
        storageState: 'e2e/.auth/admin.json',
      },
      dependencies: ['tier-setup'],
    },
  ],

  webServer: process.env.BASE_URL
    ? undefined
    : {
        command: `npm run build && PORT=${port} npm start`,
        url: `http://localhost:${port}`,
        reuseExistingServer: !process.env.CI,
        timeout: 120_000,
      },
})