This folder contains Playwright end-to-end tests.
pnpm test:e2eThese tests do not require login credentials.
- Copy the env template:
cp .env.example .env- Set a dedicated test account in
.env:
E2E_TEST_EMAILE2E_TEST_PASSWORD
The root
.envis the only canonical credential location —e2e/helpers/auth.ts,playwright.config.ts, and thescripts/ops/run-e2e-*.mjsrunners all load it. Agents: if these keys are missing, ask the user once and write the values into.env(gitignored) rather than exporting them in a shell — shell env does not persist across sessions and is the historical cause of repeated "missing credentials" skips.pnpm loop:healthreports whether the keys are present.
- Run authenticated tests:
pnpm test:e2e:authAuthenticated E2E currently targets the configured Supabase instance unless a
test explicitly mocks network traffic. Do not create publicly visible modules in
E2E. Browser submissions to POST /rest/v1/modules must be intercepted with
page.route(...).fulfill(...), and direct Supabase modules fixtures must stay
private and unapproved (public:false, isApproved:false). pnpm test:e2e,
pnpm test:e2e:auth, CI E2E, and screenshot E2E run
pnpm check:e2e-module-create-safety before Playwright to enforce this.
e2e/global-setup.tslogs in and writes Playwright storage state toplaywright/.auth/user.json.- This folder is intentionally gitignored and should never be committed.
- If auth state gets stale, delete
playwright/.auth/user.jsonand rerun tests.