test: the browser runs take their engine from BROWSER, and CI runs all three

openApp() launches chromium, firefox or webkit from playwright-core; the smoke
and DOM runs pass in each. CI runs both per engine, WebKit on macOS for
Safari's text shaping. build.target is set explicitly to the browsers the
bundle promises. CLAUDE.md is back under its 120-line budget.
This commit is contained in:
Steffen Becker committed 2026-09-04 19:30:14 +02:00
1 parent abb4870544
commit 6b6b621a5a
5 files changed
+44 -19

No files matched your search

+16 -6
View File
@@ -44,11 +44,20 @@ jobs:
- run: npm ci
- run: npm run test:lo
# Production build booted in headless Chromium — catches bundling and boot
# regressions the jsdom suite cannot see.
smoke:
runs-on: ubuntu-latest
timeout-minutes: 20
# Production build booted in the three engines behind the supported browsers
# (vite build.target). WebKit runs on macOS: its text shaping there is Safari's.
browser:
strategy:
fail-fast: false
matrix:
include:
- { browser: chromium, os: ubuntu-latest }
- { browser: firefox, os: ubuntu-latest }
- { browser: webkit, os: macos-latest }
runs-on: ${{ matrix.os }}
timeout-minutes: 30
env:
BROWSER: ${{ matrix.browser }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
@@ -56,6 +65,7 @@ jobs:
node-version: 20
cache: npm
- run: npm ci
- run: npx playwright-core install chromium
- run: npx playwright-core install --with-deps ${{ matrix.browser }}
- run: npm run build
- run: npm run test:smoke
- run: npm run test:dom