Files
Reactive-Resume/tests/e2e
Amruth Pillai 6282bf77db test(e2e): the shared page on phones, and links that aren't shared
Adds a phone visit that checks the reflow, tap-to-mail contacts and the pinned Download and Share, and an unknown link's message. The download preference spec expects the page's single Download button, and the root spec the new footer credit.
2026-09-29 00:41:54 +02:00
..

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 FLAG_ALLOW_UNSAFE_AI_BASE_URL=true LOCAL_STORAGE_PATH=/workspace/data/e2e pnpm test:e2e

Coverage

  • Email/password auth smoke.
  • Dashboard resume lifecycle: create, rename, duplicate, delete.
  • Builder section editing, autosave/navigation, and locking.
  • JSON export/import.
  • Public sharing for anonymous visitors.
  • The assistant and inline Improve, against a scripted OpenAI-compatible provider (fixtures/ai-stub.ts). It needs FLAG_ALLOW_UNSAFE_AI_BASE_URL=true so the server may call the stub on 127.0.0.1, and skips without it.

Visual regression, PDF/DOCX rasterization parity, thumbnail resolution, and import-fixture reproduction are intentionally outside the PR gate to keep it fast; the opt-in geometry, offline-font, and root-resume suites stay behind their environment flags.