1.4 KiB
1.4 KiB
ECP-0045: Remote Website E2E Test Against Local Direct Publisher
Why
We ship a static website at every.channel, but the critical path is still end-to-end playback:
- a local node publishes a live CMAF stream, and
- the deployed website can connect and play it.
Unit tests and local trunk builds do not validate this “real site + real browser engine” path.
Proposal
Add an ignored, automated E2E harness that (on macOS using installed Chrome):
- Generates a short deterministic A/V MPEG-TS fixture (ffmpeg lavfi).
- Starts
ec-node direct-publishlocally and captures the offer link. - Launches headless Chrome via DevTools and opens
https://every.channel. - Pastes the offer link into the UI, triggers “Parse link” and “Tune in”.
- Extracts the reply link from the UI and feeds it back to the publisher stdin.
- Asserts the website transitions to “Live” and a
<video>element is present with ablob:src.
This validates:
- deployed asset correctness,
- the web WebRTC answerer path,
- MSE append and playback wiring,
- the direct publisher output framing.
Scope (initial)
- Rust E2E test using a headless Chrome DevTools client, marked
#[ignore]. - Runs in
nix developto ensureffmpegandcargoexist; uses the system Chrome app on macOS. - Default
SITE_URL=https://every.channel, overridable for staging.
Reversibility
High. The harness is external to core codepaths and can be removed without protocol impact.