Files
Reactive-Resume/tests/e2e/README.md
T

56 lines
2.1 KiB
Markdown

# E2E Tests
Reactive Resume uses Playwright for PR-gated browser coverage of deterministic core flows.
## Local setup
Start PostgreSQL:
`sudo docker compose -f compose.dev.yml up -d postgres`
Generate local test secrets:
`export AUTH_SECRET=$(openssl rand -hex 32)`
`export ENCRYPTION_SECRET=$(openssl rand -hex 32)`
Run database migrations:
`APP_URL=http://localhost:3000 PORT=3000 DATABASE_URL=postgresql://postgres:postgres@localhost:5432/postgres FLAG_DISABLE_SIGNUPS=false FLAG_DISABLE_EMAIL_AUTH=false FLAG_DISABLE_API_RATE_LIMIT=true LOCAL_STORAGE_PATH=/workspace/data/e2e pnpm db:migrate`
Build the production app:
`APP_URL=http://localhost:3000 PORT=3000 DATABASE_URL=postgresql://postgres:postgres@localhost:5432/postgres FLAG_DISABLE_SIGNUPS=false FLAG_DISABLE_EMAIL_AUTH=false FLAG_DISABLE_API_RATE_LIMIT=true LOCAL_STORAGE_PATH=/workspace/data/e2e pnpm build`
Run tests:
`APP_URL=http://localhost:3000 PORT=3000 DATABASE_URL=postgresql://postgres:postgres@localhost:5432/postgres FLAG_DISABLE_SIGNUPS=false FLAG_DISABLE_EMAIL_AUTH=false FLAG_DISABLE_API_RATE_LIMIT=true LOCAL_STORAGE_PATH=/workspace/data/e2e pnpm test:e2e`
## Semantic CSS
Run the six Semantic CSS scenarios: default mode, legacy conversion, source-only autosave preservation, portable
selector rendering, break-inside pagination, and all-template visual regression:
```bash
pnpm exec playwright test tests/e2e/specs/semantic-css
```
Linux/Chromium visual baselines are updated intentionally with:
```bash
pnpm exec playwright test tests/e2e/specs/semantic-css/template-visual.spec.ts \
--project=chromium --update-snapshots
```
## Coverage
- Email/password auth smoke.
- Dashboard sample resume creation.
- Builder basics edit and autosave persistence.
- JSON export/import.
- Public sharing for anonymous visitors.
- Semantic CSS default mode, legacy conversion, source-only autosave preservation, portable selector rendering,
break-inside pagination, and all-template visual regression.
PDF, DOCX, OAuth, passkeys, 2FA, password reset, and AI flows are intentionally outside the initial PR gate.