Files
Rental-operations-platform/playwright.config.ts
T
2026-06-25 20:08:39 -04:00

64 lines
2.0 KiB
TypeScript

import { defineConfig, devices } from '@playwright/test';
const baseURL = process.env.PLAYWRIGHT_BASE_URL ?? 'http://127.0.0.1:3000';
const executablePath = process.env.PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH;
const serverCommand = process.env.PLAYWRIGHT_SERVER_COMMAND ?? 'pnpm start';
export default defineConfig({
testDir: './tests',
testMatch: ['browser/**/*.spec.ts', 'a11y/**/*.spec.ts', 'visual/**/*.spec.ts'],
fullyParallel: true,
forbidOnly: Boolean(process.env.CI),
retries: process.env.CI ? 2 : 0,
...(process.env.CI ? { workers: 2 } : {}),
reporter: process.env.CI ? [['html', { open: 'never' }], ['github']] : 'list',
expect: {
timeout: 5_000,
toHaveScreenshot: {
animations: 'disabled',
caret: 'hide',
maxDiffPixelRatio: 0.005,
},
},
use: {
baseURL,
locale: 'en-US',
timezoneId: 'UTC',
trace: 'retain-on-failure',
screenshot: 'only-on-failure',
video:
process.env.PLAYWRIGHT_VIDEO === 'off' ? 'off' : process.env.CI ? 'retain-on-failure' : 'off',
},
projects: [
{
name: 'chromium',
use: {
...devices['Desktop Chrome'],
...(executablePath ? { launchOptions: { executablePath } } : {}),
},
},
{ name: 'firefox', use: { ...devices['Desktop Firefox'] } },
{ name: 'webkit', use: { ...devices['Desktop Safari'] } },
{ name: 'mobile-chrome', use: { ...devices['Pixel 7'] } },
{ name: 'mobile-safari', use: { ...devices['iPhone 15'] } },
],
webServer: {
command: serverCommand,
url: baseURL,
reuseExistingServer: !process.env.CI,
timeout: 120_000,
env: {
SITE_ORIGIN: baseURL,
PUBLIC_RELEASE_APPROVED: 'false',
COMPONENT_FIXTURES_ENABLED: 'true',
NEXT_PUBLIC_DEMO_ENABLED: 'true',
DEMO_SUBMISSION_MODE: 'local',
DEMO_LOCAL_TEST_MODE: 'true',
DEMO_TEST_SCENARIOS_ENABLED: 'true',
NEXT_PUBLIC_ANALYTICS_MODE: 'disabled',
HOSTNAME: '127.0.0.1',
PORT: '3000',
},
},
});