import { defineConfig, devices } from '@playwright/test'; const DEFAULT_EXPECT_TIMEOUT = process.env.CI ? 30000 : 120000; const DEFAULT_TEST_TIMEOUT = process.env.CI ? 60000 : 240000; const headless = !!process.env.CI || !!process.env.PLAYWRIGHT_HEADLESS; export default defineConfig({ forbidOnly: !!process.env.CI, retries: process.env.CI ? 2 : 0, workers: process.env.CI ? 1 : undefined, timeout: DEFAULT_TEST_TIMEOUT, fullyParallel: true, reporter: [ ['list'], ['html', { outputFolder: './test-results/reports/playwright-html-report', open: 'never' }], ], outputDir: './test-results/results', use: { baseURL: 'http://localhost:4322', locale: 'en-US', trace: 'retain-on-failure', headless, }, projects: [ { name: '@calcom/base', testDir: './tests', testMatch: /.*\.e2e\.tsx?/, expect: { timeout: DEFAULT_EXPECT_TIMEOUT, }, use: { ...devices['Desktop Chrome'], locale: 'en-US', }, }, ], webServer: { command: process.env.CI ? `yarn workspace @calcom/atoms dev-on && yarn workspace @calcom/atoms build && rm -f prisma/dev.db && yarn prisma db push && NEXT_PUBLIC_IS_E2E=1 NODE_ENV=test NEXT_PUBLIC_X_CAL_ID="${process.env.ATOMS_E2E_OAUTH_CLIENT_ID}" X_CAL_SECRET_KEY="${process.env.ATOMS_E2E_OAUTH_CLIENT_SECRET}" NEXT_PUBLIC_CALCOM_API_URL="${process.env.ATOMS_E2E_API_URL}" VITE_BOOKER_EMBED_OAUTH_CLIENT_ID="${process.env.ATOMS_E2E_OAUTH_CLIENT_ID_BOOKER_EMBED}" VITE_BOOKER_EMBED_API_URL="${process.env.ATOMS_E2E_API_URL}" ORGANIZATION_ID=${process.env.ATOMS_E2E_ORG_ID} yarn dev:e2e` : `rm -f prisma/dev.db && yarn prisma db push && yarn dev:e2e`, url: 'http://localhost:4322', timeout: 600_000, reuseExistingServer: !process.env.CI, }, });