every.channel: sanitized baseline
This commit is contained in:
commit
897e556bea
258 changed files with 74298 additions and 0 deletions
35
evolution/proposals/ECP-0045-remote-website-e2e-direct.md
Normal file
35
evolution/proposals/ECP-0045-remote-website-e2e-direct.md
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
# 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.
|
||||
Loading…
Add table
Add a link
Reference in a new issue