rightkit_qa/lib.rs
1//! rightkit-qa: the Rust QA harness for Right Suite apps (macOS and Windows).
2//!
3//! This crate and the Node packages `@rightkit/qa` / `@rightkit/qa-chrome` are two runners
4//! that coexist; neither replaces the other. This one drives native Rust, Tauri and engine
5//! targets (the real macOS app, the Windows WebView2 app through its in-app control server,
6//! the engine) with no Node or Python runtime. The Node packages own browser-page QA
7//! (Chrome for Testing plus a CDP page driver, evidence, pane/frame/paint checks). See the
8//! ownership table in this crate's README.
9//!
10//! Targets:
11//! * engine: [`engine::EngineTarget`] drives the app engine over CLI words and the
12//! framed stdio sidecar.
13//! * app UI: [`control::Control`] launches the real Tauri app hidden/backgrounded
14//! and drives it through the in-app `rightkit-qa-driver` server.
15//! * Chrome: `browser` feature, through `rightkit-browser`.
16//!
17//! Scenarios are declarative TOML ([`scenario`]) run by the CLI, or plain Rust
18//! integration tests wrapped by [`harness::Harness::scenario`] (tier gating, requires-skip,
19//! per-scenario evidence, orphan check). Knobs reach managed (`rightkit cargo`) test runs
20//! through cargo features plus a [`settings::Settings`] file, never the caller's environment.
21//!
22//! Validators: [`media`] (WAV stats, PNG/frame non-uniformity) and [`loudness`]
23//! (BS.1770 integrated loudness, range, true peak), pure Rust except where a compressed
24//! container needs a caller-supplied ffmpeg. [`mock::MockServer`] stands in for paid providers.
25pub mod audio;
26#[cfg(feature = "browser")]
27pub mod browser;
28pub mod check;
29pub mod config;
30pub mod control;
31pub mod engine;
32pub mod evidence;
33pub mod guard;
34pub mod harness;
35pub mod http;
36pub mod lock;
37pub mod loudness;
38pub mod media;
39pub mod mock;
40pub mod page;
41pub mod process;
42pub mod scenario;
43pub mod settings;
44pub mod storage;
45pub mod suite;
46pub mod userdata;
47pub mod util;
48pub mod workspace;
49
50pub use util::{Error, Result};