Testing & release checks
Automated evidence is not a blanket “everything tested” claim.
Deterministic suites
pnpm format:check
pnpm lint
pnpm typecheck
pnpm test
pnpm test:e2e
pnpm buildBackend tests use real PostgreSQL/Prisma with mocked external identity, storage, push and delivery boundaries. Web/native tests verify UI and SDK adapters. Browser tests use isolated HTTPS servers and fake Clerk responses, not personal accounts. Never run suites against the development database.
Covered workflows
- Email signup/verification, Google redirects, callback errors and missing-profile completion.
- Console company/logo requirements; project wizard, callback validation, optional legal fields, upload failure and organization isolation.
- No-project sidebar state, creation and switching projects; secret reveal/hide.
- OIDC code exchange, PKCE, nonce, cookie/CSRF binding, expiry and replay.
- MCP handshake, legal acceptance/rejection/version changes, onboarding replies, blacklist and revocation.
- Exact-200 webhook retries, signing, stable IDs, worker leases and terminal failure.
- Mobile email auth, approvals, blacklist, deep links, foreground refresh and failed/unregistered push handling.
This is regression coverage, not proof of every possible input or device.
See the repository's ONBOARDING-TEST-AUDIT.md for coverage and remaining checks.
Opt-in live integrations
NODE_ENV=test pnpm test:s3 --apply
pnpm test:auth0:install-tunnel
pnpm test:auth0The S3 smoke writes only isolated fixtures to the approved development bucket. The Auth0 smoke creates a temporary application/connection/synthetic user in the approved dev tenant and performs a real broker exchange. Both clean up their own resources on ordinary exit. Forced termination needs manual fixture review.
Auth0 uses a free, temporary Cloudflare Quick Tunnel around an allowlisted disposable protocol gateway. It excludes tRPC, MCP, uploads, helpers and SSE; Quick Tunnels have no SLA or SSE support. Cloudflare limitations
The GitHub auth0-live environment and workflow are main-only/manual-only. The
client ID is a variable; only its secret is a secret. Its create/delete clients,
create/delete connections and read/delete users permissions are tenant-wide, so
never reuse it in production or expose it to PR code. No token/trace artifacts.
Still separate release gates
Complete Google consent with an authorized test account; validate real native push credentials/build/device delivery; certify any downstream Auth0 claim Action; run the workflows remotely; and verify production DNS, deployment, monitoring, retention procedures and current legal approval. Local mocks do not certify these.