65 lines
2.2 KiB
Rust
65 lines
2.2 KiB
Rust
// Manual Google Meet observer contract.
|
|
//
|
|
// Scope: protect the operator-assisted Google Meet observer harness and its
|
|
// optional recording analysis path.
|
|
// Targets: scripts/manual/run_google_meet_observer_probe.sh.
|
|
// Why: Meet is a real-world consumer of the RCT UVC/UAC output, but the test
|
|
// must stay manual, artifact-backed, and free of browser credential automation.
|
|
|
|
const GOOGLE_MEET_OBSERVER_SCRIPT: &str = include_str!(concat!(
|
|
env!("CARGO_MANIFEST_DIR"),
|
|
"/scripts/manual/run_google_meet_observer_probe.sh"
|
|
));
|
|
|
|
#[test]
|
|
fn google_meet_observer_stays_manual_and_artifact_backed() {
|
|
for marker in [
|
|
"Google Meet observer probe checklist",
|
|
"no Google credentials, sudo, or browser automation are used",
|
|
"operator-checklist.txt",
|
|
"manual-timing.json",
|
|
"client-transport-timeline.json",
|
|
"LESAVKA_MEET_OBSERVER_CAPTURE=${LESAVKA_MEET_OBSERVER_CAPTURE:-}",
|
|
"observer-google-meet-capture",
|
|
"Observer capture times are operator-confirmed",
|
|
"Path to observer recording for analysis (blank to skip)",
|
|
] {
|
|
assert!(
|
|
GOOGLE_MEET_OBSERVER_SCRIPT.contains(marker),
|
|
"Google Meet observer harness should preserve marker {marker}"
|
|
);
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn google_meet_observer_uses_synthetic_bundled_media_without_secret_automation() {
|
|
for marker in [
|
|
"lesavka-sync-probe",
|
|
"--event-width-codes \"${PROBE_EVENT_WIDTH_CODES}\"",
|
|
"--timeline-json \"${CLIENT_TIMELINE_JSON}\"",
|
|
"running synthetic bundled media through Google Meet path",
|
|
"lesavka-sync-analyze",
|
|
] {
|
|
assert!(
|
|
GOOGLE_MEET_OBSERVER_SCRIPT.contains(marker),
|
|
"Google Meet observer harness should preserve synthetic marker {marker}"
|
|
);
|
|
}
|
|
|
|
for forbidden in [
|
|
"chromedriver",
|
|
"geckodriver",
|
|
"google-chrome --remote-debugging",
|
|
"sudo ",
|
|
"PASSWORD",
|
|
"VAULT",
|
|
"vault",
|
|
"read -s",
|
|
] {
|
|
assert!(
|
|
!GOOGLE_MEET_OBSERVER_SCRIPT.contains(forbidden),
|
|
"Google Meet observer harness must remain manual/non-secret: {forbidden}"
|
|
);
|
|
}
|
|
}
|