QA Testing Guide
Everything you need to set up, test, and verify Zerocast. Follow these steps in order.
Clone & Install
Clone the repository
git clone https://github.com/AviOfLagos/antigravity-streamyard.gitcd antigravity-streamyardnpm installGet the .env.local file
Request the .env.local file from the project lead. It contains credentials for:
- Neon Postgres (DATABASE_URL, DIRECT_URL)
- Upstash Redis (UPSTASH_REDIS_REST_URL, UPSTASH_REDIS_REST_TOKEN)
- LiveKit Cloud (LIVEKIT_API_KEY, LIVEKIT_API_SECRET, NEXT_PUBLIC_LIVEKIT_URL)
- NextAuth (NEXTAUTH_SECRET, NEXTAUTH_URL)
- Google OAuth (GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET)
Never commit .env.local to git. It's already in .gitignore.
Generate Prisma client & start dev server
Run Automated Tests
Unit tests (114 tests)
npm testAll tests should pass. If any fail, report immediately.
Production build check
npx next buildShould compile with zero lint warnings.
API Testing (Postman)
Import the Postman collection
Find docs/zerocast-api.postman_collection.json in the repo.
- Open Postman → Import → drag the JSON file
- Set the
baseUrlvariable tohttp://localhost:3000 - Sign in via browser, then copy session cookie for authenticated requests
- Create a room first to get
roomCodeandhostToken
The collection covers 25 endpoints across 6 categories: Health, Rooms, Guest Flow, Moderation, Chat, Streaming, and Platforms.
Manual Testing Checklist
Follow the full QA test plan at docs/qa-test-plan.md in the repo. Key areas:
Authentication
Sign in, sign out, protected routes
Studio Creation
Title, platforms, auto-admit toggle
Guest Join Flow
Name, email, preview, waiting, admit, deny
Video & Audio
Camera, mic, speaker selection, speaking indicator
Host Moderation
Mute, kick, stage/backstage
Chat Integration
Messages, donations, subs, follows, raids
Send to Chat
Host sends to YouTube + Twitch
Go Live
Start/stop stream, add/remove platforms
Edge Cases
Room full, timeout, disconnect, ended room
Cross-Browser
Chrome, Firefox, Safari, mobile
Multi-User Testing
Zerocast is a multi-user app. You need at least 2 browser windows to test properly:
- Window 1 (Host): Sign in → Create studio → Enter studio
- Window 2 (Guest): Open incognito → Go to
/join/{code}→ Enter name → Request to join - Host window: See toast → Admit or Deny
- Both windows: Verify video/audio works in both directions
Tip: Use Chrome + Incognito Chrome, or Chrome + Firefox for two separate sessions.
Reporting Issues
Use one of these channels to report bugs:
Include: steps to reproduce, expected vs actual behavior, browser/OS, and screenshots if possible.