RockList.Live relies on three layers:
- Vitest for logic and route-level coverage
- Playwright for browser workflows
- Manual Twitch smoke checks for the flows that depend on real Twitch behavior
Run the push-time gate with:
npm run check:prepushThat covers:
- generated-file checks
- typecheck
- Vitest
Run the full pre-PR ship gate with:
npm run check:shipThat adds formatting, lint, i18n coverage, and a production app build on top of the normal push-time gate.
Run these only when the change needs them:
npm run buildfor deployment-sensitive worknpm run test:e2efor browser flowsnpm run lintornpm run lint:fullfor a full-repo Biome pass
Manual verification still matters for:
- real Twitch OAuth
- real bot OAuth
- EventSub subscription creation
- chat reply delivery
- tunnel and public callback behavior
- hosted Twitch panel behavior
- request parsing and request-policy rules
- viewer request mutations
- playlist management mutations
- Twitch EventSub request handling
- search filters and catalog rules
- settings save flows