pdf-quiz-generator/e2e
Daniel 2d55805471
Some checks failed
Tests / backend (push) Failing after 4s
Tests / frontend (push) Failing after 29s
Tests / e2e (push) Failing after 33s
chore: keep playwright's output out of the repository
Reports, traces and the last-run marker are per-run artefacts; CI keeps them
for a fortnight as an upload, which is where they belong.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TqXevQJhxFrM7jJg82cgZN
2026-09-13 01:23:45 +02:00
..
playwright-report feat: a versioned API, refresh tokens, and an end-to-end stack that found four bugs 2026-09-13 01:23:38 +02:00
test-results feat: a versioned API, refresh tokens, and an end-to-end stack that found four bugs 2026-09-13 01:23:38 +02:00
tests feat: a versioned API, refresh tokens, and an end-to-end stack that found four bugs 2026-09-13 01:23:38 +02:00
.gitignore chore: keep playwright's output out of the repository 2026-09-13 01:23:45 +02:00
package-lock.json feat: a versioned API, refresh tokens, and an end-to-end stack that found four bugs 2026-09-13 01:23:38 +02:00
package.json feat: a versioned API, refresh tokens, and an end-to-end stack that found four bugs 2026-09-13 01:23:38 +02:00
playwright.config.js feat: a versioned API, refresh tokens, and an end-to-end stack that found four bugs 2026-09-13 01:23:38 +02:00
README.md feat: a versioned API, refresh tokens, and an end-to-end stack that found four bugs 2026-09-13 01:23:38 +02:00
seed.py feat: a versioned API, refresh tokens, and an end-to-end stack that found four bugs 2026-09-13 01:23:38 +02:00

End-to-end

Real browsers and a real Postgres, against a stack that is created and thrown away. Nothing here touches the running site.

cd e2e
npm install
npx playwright install --with-deps chromium webkit
npm run stack:up      # build the stack, apply the schema, seed it
npm test              # every project
npm run test:phone    # just the iPhone and Pixel projects
npm run stack:down    # and take the data with it

Why there are five projects

Project What it is for
desktop 1440×900 Chrome. The layout most of the work is done in.
iphone iPhone 13, WebKit. Where an SVG with no intrinsic size renders as nothing, and where a sub-16px input zooms the page and never zooms back.
android Pixel 7, Chrome. The other half of "mobile".
tablet iPad Mini landscape — the width where the reading rail turns into a drawer.
api No browser. The contract over HTTP: addresses, error shapes, who may see an answer, refresh-token rotation.

Every bug this suite was written after was a phone bug reported as a screenshot. A desktop-only suite would have passed through all of them.

Fixtures

seed.py builds the smallest world the tests name: two accounts (an educator and a learner), three questions, one session, two articles with a cross-reference between them, and a shared deck. Re-running it is safe.

Accounts are educator@e2e.example.com and learner@e2e.example.com; the passwords are in tests/helpers.js, which is fine, because that database exists for about four minutes.