- Unit: logic and mapping behavior
- Integration: sequencing across peers, rooms, signaling/media interactions
- Full: runtime process behavior and websocket/netsocket integration
Primary signaling suites:
0-peer: media server registration lifecycle1-peer: full peer lifecycle and media start/stop/leave2-peer: peer discovery + fanout + control path3-peer: fanout correctness beyond pairwise interactions10-peer: timing variance and churn100-peer: high-cardinality sequencing and branch behaviormulti-region: regional routing and capacity behavior across configured region pools (tests uselocal/local-2)room-fanout-scale: 99 peers across 33 rooms
A run is considered healthy when:
- no protocol invariant violations are thrown
- expected join/attach/fanout transitions converge
- cleanup paths complete without stale transport/producer mappings
- diagnostics provide actionable failure reasons for user-impacting issues
- baseline coverage targets room control and signaling correctness, not media quality scoring
- stress tests focus on control-plane correctness under concurrency and churn (not media traffic)
- browser/device-specific codec/network variance is not fully modeled in integration tests
- Full repo check path:
make test
- Signaling only:
npm --prefix signaling run test:unitnpm --prefix signaling run test:integrationnpm --prefix signaling run test:full
- Media only:
npm --prefix media run test:unit
- Target one signaling integration suite file:
npm --prefix signaling exec tsx --test tests/integration/signaling.zeroPeerLifecycle.test.tsnpm --prefix signaling exec tsx --test tests/integration/signaling.userImpactFailures.test.ts