harb/playwright.config.ts
johba c66b553692 fix: move Chromium-specific launch args out of root use block, fix CTA text match
- launchOptions with --disable-dev-shm-usage and --no-sandbox are
  Chromium-specific; passing them to Firefox/WebKit causes errors.
  Move to chromium and android project use blocks only.
- Fix landing page CTA assertion to match actual button text
  ("Get $KRK", "Get Your Edge") instead of generic patterns.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 11:18:53 +00:00

83 lines
2.4 KiB
TypeScript

import { defineConfig, devices } from '@playwright/test';
/**
* Cross-browser + mobile viewport matrix for E2E quality gate.
*
* - `chromium` runs ALL numbered specs (01-07) including transactional tests
* that mutate on-chain state.
* - Other projects depend on `chromium` finishing first (chain state must exist)
* and only run read-only / UI-rendering specs (03, 06, 07).
*/
// Read-only specs safe to run in every browser/viewport after chain state exists.
const CROSS_BROWSER_SPECS = '0[367]-*.spec.ts';
// Chromium-specific launch flags (not valid for Firefox/WebKit).
const CHROMIUM_ARGS = ['--disable-dev-shm-usage', '--no-sandbox'];
export default defineConfig({
testDir: './tests/e2e',
testMatch: process.env.CI ? '[0-9]*.spec.ts' : '**/*.spec.ts',
fullyParallel: false,
timeout: 10 * 60 * 1000,
expect: {
timeout: 30_000,
},
retries: process.env.CI ? 1 : 0,
workers: process.env.CI ? 1 : undefined,
use: {
headless: true,
actionTimeout: 0,
},
projects: [
/* ── Desktop browsers ─────────────────────────────────── */
{
name: 'chromium',
use: {
...devices['Desktop Chrome'],
viewport: { width: 1280, height: 720 },
screen: { width: 1280, height: 720 },
launchOptions: { args: CHROMIUM_ARGS },
},
},
{
name: 'firefox',
use: {
...devices['Desktop Firefox'],
viewport: { width: 1280, height: 720 },
screen: { width: 1280, height: 720 },
},
dependencies: ['chromium'],
testMatch: CROSS_BROWSER_SPECS,
},
{
name: 'webkit',
use: {
...devices['Desktop Safari'],
viewport: { width: 1280, height: 720 },
screen: { width: 1280, height: 720 },
},
dependencies: ['chromium'],
testMatch: CROSS_BROWSER_SPECS,
},
/* ── Mobile viewports ─────────────────────────────────── */
{
name: 'iphone',
use: {
...devices['iPhone 14'],
},
dependencies: ['chromium'],
testMatch: CROSS_BROWSER_SPECS,
},
{
name: 'android',
use: {
...devices['Pixel 7'],
launchOptions: { args: CHROMIUM_ARGS },
},
dependencies: ['chromium'],
testMatch: CROSS_BROWSER_SPECS,
},
],
});