Browser Testing
End-to-end browser testing with Playwright and local service mocks.
Specs live in apps/web/tests/ and run with Playwright's Chromium project. Unit and contract tests use the existing Bun test command.
bun run test
bun run test:i18n-parity
bun run agent:i18n --strict
bun run build
bun run e2eIf Chromium is missing, run (cd apps/web && bun x playwright install chromium).
Browser server
Build first: Playwright starts bun run start --port 3107, which serves a production build at http://127.0.0.1:3107. It does not start the development server or reuse an existing server automatically. To test a server you started deliberately, set PLAYWRIGHT_TEST_BASE_URL to its URL.
bun run --cwd apps/web e2e:uiThe smoke suite covers marketing, auth forms, pricing, docs locale fallback and redirects, and avatar selection. Tests for admin, team, feedback and settings workflows also need an isolated database and authenticated fixtures.
Database-backed tests
Database fixtures are disabled by default. Their shared guard in packages/database/test-support/review-database.ts requires REVIEW_DATABASE_TESTS=true and a PostgreSQL URL using 127.0.0.1, database vibekit_audit, and port 55439 (or an explicit REVIEW_DATABASE_PORT). Create and migrate a disposable database before opting in. The app server and tests must use the same database and auth secret.
Use MOCK_SERVICES=true for both server and tests. These fixtures create and delete their own users and records; never point them at production or shared data. Browser tests do not prove real payment, email, storage or AI delivery.