IRIDESC E UX · COMMAND
v30 · Program Primary Revision
INTERNALSTEP-BY-STEP

Production Readiness Tests

A hands-on acceptance suite for the actual deployed stack, not just code/static checks.

Test philosophy

A test passes only when you observe the expected result on the actual deployed environment. A local demo or static audit does not prove Cloudflare bindings, Access, D1, R2, network, or OBS.

Core Command acceptance tests

#TestPass
1Fresh Incognito opens Command URLAccess appears before app.
2Unlisted email attempts loginDenied.
3Approved email authenticatesRedirects to Command.
4/api/command/meReal email + correct role.
5Setup DoctorFunctions, D1, Access/JWT, R2 healthy.
6Create disposable D1 recordPersists after refresh.
7Upload disposable R2 assetPersists and reads back.
8Delete test assetMetadata/object removed.
9Viewer tries privileged actionDenied server-side.
10Technical Admin routeAllowed only to correct role.

Public site tests

☐ Iridesceux all primary routes
☐ Legal/privacy routes
☐ Forms actual backend delivery
☐ Search
☐ 404
☐ Mobile navigation
☐ HTTPS/no mixed content
☐ HVN main/player pages
☐ HVN legal redirects
☐ All six markets + National
☐ Site Studio harmless override then revert

Broadcast tests

☐ Agent online status
☐ Test scene switch
☐ Mute/unmute test source
☐ Start/stop recording if used
☐ Private test stream start/stop
☐ Primary→backup→primary
☐ Standby loop TAKE/CLEAR
☐ Butterfly trigger→hold→off→reset→retrigger
☐ Station ID PREVIEW/CUE/TAKE/CLEAR
☐ Station ID Bug Take/Off
☐ Paid screen-bug sequence with test creative
☐ Full commercial break preview/cue/take/return
☐ KILL ALL GRAPHICS
☐ Emergency Stop Broadcast confirmation/path

Analytics & safety tests

☐ External viewer creates telemetry
☐ Command preview excluded
☐ Market split correct
☐ Retention timeline receives heartbeats
☐ Test ad proof-of-play record
☐ NWS refresh creates only relevant market candidates
☐ AI drafting disabled or clearly marked if enabled
☐ No EAS tones
☐ Auto-TAKE disabled unless formally approved/rehearsed

Release signoff record

Record date/time, tester names, production commit, Pages deployment IDs/URLs, D1 backup filename, known exceptions, and explicit go/no-go decision. “Looks good” is not a release record.

v24 rundown and traffic acceptance tests

  1. Draft isolation: build a day and prove it is absent from public HVN until Publish.
  2. Publish isolation: publish the EPG and prove the program bus does not change.
  3. Air approval isolation: approve the day and prove it still does not air while automation is disarmed.
  4. National playout: arm National and verify exact active master, timing, hard-out, audio, and both confidence monitors.
  5. Local inheritance: local market inherits National program with the correct local EPG.
  6. Local override: local program block replaces the overlapping National block only in that market.
  7. Break substitution: National pod airs everywhere except a market with an overlapping local pod.
  8. File hold: schedule a 30-second break inside a prerecorded master; after return, show playhead must be the pre-break playhead plus only post-break elapsed time—not +30 seconds.
  9. Live break: during Live/OBS, commercial overlay must not pause the incoming live feed.
  10. Mid-break join: open a fresh viewer during a scheduled pod; it must join the correct commercial position and resume the program at the correct held playhead.
  11. Conflict rejection: overlapping primary blocks and overlapping same-market break blocks must be rejected.