Playwright E2E test suite for BudgetPilot.
tests/e2e/
helpers/db.ts # Dexie seeding helpers (runs in browser context)
pages/ # Page Object Models
fixtures.ts # Shared test fixtures and CSV data
fixtures/themes.ts # Theme JSON fixtures
tier1/ # Critical path — all 5 browsers
tier2/ # Regression — Chromium only
-
Build the app and place
dist/in the root of this repo:# In the budget-tracker repo: npm run build cp -r dist/ ../budget-tracker-e2e/dist/ -
Install dependencies:
npm ci npx playwright install --with-deps
-
Run Tier 1 tests:
npm run test:tier1
Tests run automatically via GitHub Actions on every push to main.
| Secret | Description |
|---|---|
APP_REPO_TOKEN |
Fine-grained PAT with actions:read on encomp/budget-tracker |
To create the token:
- GitHub → Settings → Developer settings → Fine-grained personal access tokens
- Repository access: Only
encomp/budget-tracker - Permissions: Actions → Read-only
- Copy token → add as
APP_REPO_TOKENsecret inencomp/budget-tracker-e2e
| Tier | Browsers | Tests | Purpose |
|---|---|---|---|
| 1 | chromium, firefox, webkit, mobile-chrome, mobile-safari | 26 | Critical path |
| 2 | chromium only | 15 | Regression, edge cases |