Skip to main content

faucet_cli/pipeline_test/
mod.rs

1//! `faucet test` — fixture-based, fully-offline pipeline testing (#210).
2//!
3//! A spec file declares test cases: fixture input records, the pipeline logic
4//! under test (a config file's transforms/quality/contract, or the same
5//! declared inline), and the expected outcome (output records, DLQ routing,
6//! counts, or an expected failure). The runner streams the fixtures through
7//! the real `faucet_core::Pipeline` loop with in-memory source/sink/DLQ, so
8//! CI can assert pipeline logic without any external infrastructure.
9//!
10//! Module layout mirrors `schedule/` and `replication/`:
11//! - [`spec`] — serde types + validation for the spec file (`faucet schema test`).
12//! - [`fixtures`] — fixture-input loading (inline / `.jsonl` / `.json` / `.yaml`).
13//! - [`runner`] — the offline execution harness (fixture source, capturing
14//!   sink + DLQ, the real pipeline pass chain).
15//! - [`diff`] — tolerant matchers (`exact`/`subset`, ordered/unordered) and
16//!   the structured path diff behind failure messages.
17//! - [`report`] — human checklist + `--json` rendering.
18
19pub mod diff;
20pub mod fixtures;
21pub mod report;
22pub mod runner;
23pub mod spec;