Expand description
faucet test — fixture-based, fully-offline pipeline testing (#210).
A spec file declares test cases: fixture input records, the pipeline logic
under test (a config file’s transforms/quality/contract, or the same
declared inline), and the expected outcome (output records, DLQ routing,
counts, or an expected failure). The runner streams the fixtures through
the real faucet_core::Pipeline loop with in-memory source/sink/DLQ, so
CI can assert pipeline logic without any external infrastructure.
Module layout mirrors schedule/ and replication/:
spec— serde types + validation for the spec file (faucet schema test).fixtures— fixture-input loading (inline /.jsonl/.json/.yaml).runner— the offline execution harness (fixture source, capturing sink + DLQ, the real pipeline pass chain).diff— tolerant matchers (exact/subset, ordered/unordered) and the structured path diff behind failure messages.report— human checklist +--jsonrendering.
Modules§
- diff
- Expectation evaluation for
faucet test— pure record matching + a structured, path-based diff for failure messages. - fixtures
- Fixture-input loading for
faucet test. - report
- Rendering for
faucet testresults — the human checklist and the machine-readable--jsondocument. - runner
- Offline pipeline execution for
faucet test. - spec
- Serde types for the
faucet testspec file.