Skip to main content

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//! Run kinds and evidence: a run is `functional` (the default: clicks, state and text, no
23//! screenshots, no recordings) or `visual` (the audit-visual run that captures screens), see
24//! [`storage::RunKind`]. Each run writes into its own directory under the managed runs root and
25//! [`retention`] prunes only directories that carry the run marker.
26//!
27//! Validators: [`media`] (WAV stats, PNG/frame non-uniformity) and [`loudness`]
28//! (BS.1770 integrated loudness, range, true peak), pure Rust except where a compressed
29//! container needs a caller-supplied ffmpeg. [`mock::MockServer`] stands in for paid providers.
30pub mod audio;
31#[cfg(feature = "browser")]
32pub mod browser;
33pub mod check;
34pub mod config;
35pub mod control;
36pub mod engine;
37pub mod evidence;
38pub mod guard;
39pub mod harness;
40pub mod http;
41pub mod lock;
42pub mod loudness;
43pub mod media;
44pub mod mock;
45pub mod page;
46pub mod process;
47pub mod retention;
48pub mod scenario;
49pub mod settings;
50pub mod storage;
51pub mod suite;
52pub mod userdata;
53pub mod util;
54pub mod workspace;
55
56pub use util::{Error, Result};