every.channel/evolution/proposals/ECP-0045-remote-website-e2e-direct.md
2026-02-15 16:17:27 -05:00

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):

  1. Generates a short deterministic A/V MPEG-TS fixture (ffmpeg lavfi).
  2. Starts ec-node direct-publish locally and captures the offer link.
  3. Launches headless Chrome via DevTools and opens https://every.channel.
  4. Pastes the offer link into the UI, triggers “Parse link” and “Tune in”.
  5. Extracts the reply link from the UI and feeds it back to the publisher stdin.
  6. Asserts the website transitions to “Live” and a <video> element is present with a blob: 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 develop to ensure ffmpeg and cargo exist; 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.