lesavka/tests/e2e/scripts/manual/upstream_media_e2e_contract.rs

48 lines
1.7 KiB
Rust

// End-to-end probe contract for operator-assisted upstream media validation.
//
// Scope: protect the manual E2E harnesses that send client-origin synthetic
// media through server output and then capture the RCT result.
// Targets: `scripts/manual/run_client_to_rct_transport_probe.sh` and
// `scripts/manual/run_google_meet_observer_probe.sh`.
// Why: raw RCT capture and Google Meet observation answer different E2E
// questions, so both scripts must keep artifact-backed, analyzable outputs.
const CLIENT_RCT_PROBE: &str = include_str!(concat!(
env!("CARGO_MANIFEST_DIR"),
"/scripts/manual/run_client_to_rct_transport_probe.sh"
));
const GOOGLE_MEET_PROBE: &str = include_str!(concat!(
env!("CARGO_MANIFEST_DIR"),
"/scripts/manual/run_google_meet_observer_probe.sh"
));
#[test]
fn e2e_harnesses_keep_black_box_capture_and_observer_paths() {
for marker in [
"client-to-RCT bundled transport probe",
"starting RCT UVC/UAC capture on ${TETHYS_HOST}",
"running client-origin bundled transport probe",
"analyzing RCT capture",
"max_client_to_rct_age_ms",
"client-transport-timeline.json",
] {
assert!(
CLIENT_RCT_PROBE.contains(marker),
"client-to-RCT E2E probe should preserve marker {marker}"
);
}
for marker in [
"Google Meet observer probe",
"no Google credentials, sudo, or browser automation are used",
"operator-checklist.txt",
"running synthetic bundled media through Google Meet path",
"LESAVKA_MEET_OBSERVER_CAPTURE",
] {
assert!(
GOOGLE_MEET_PROBE.contains(marker),
"Meet observer E2E probe should preserve marker {marker}"
);
}
}