64 lines
2.0 KiB
TypeScript
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',
|
|
},
|
|
},
|
|
});
|