Skip to content
Docs
OperationsUpdated 2026-08-20

Testing and acceptance

Run unit, type, build, desktop, mobile, accessibility, provider-preview, and clean-clone acceptance checks.

Check gate

bash
pnpm check

The check gate runs:

  • Biome formatting and lint checks;
  • Paraglide locale-key parity;
  • Vitest unit tests;
  • TypeScript without emitting files.

Production build

bash
pnpm build

Vite builds the browser application and Cloudflare Worker server. Content Collections and Paraglide are generated during the build.

End-to-end acceptance

bash
pnpm e2e

Playwright runs with one worker against isolated local D1, R2, and KV state. The suite covers:

  • public routes and SEO;
  • desktop and mobile layouts;
  • 320 px navigation;
  • theme persistence;
  • registration, email verification, and login;
  • API-key creation, bearer usage, and revocation;
  • private file upload, download, and deletion;
  • session and administrator workflows;
  • waitlist, newsletter, mail preview, and notification preview;
  • AI task contracts;
  • serious and critical Axe violations.

Environment isolation

scripts/run-e2e.mjs backs up .env.local and .dev.vars.local, runs Playwright, then restores or removes those files even when the suite exits through a signal. Test configuration cannot silently contaminate a later local build or deployment.

Hydration acceptance

JavaScript-only submit buttons are disabled in server HTML until hydration completes. This prevents a slow CI browser from submitting a native form before React attaches the handler.

GitHub Actions

The CI sequence is install, build, check, Chromium installation, and E2E. Building before standalone type checking ensures Content Collections output exists in a clean clone.

TanStarter SES documentationBuilt with TanStack Start and Content Collections.