Testing
Three kinds of test, each answering a different question, all run in CI.
- dbt unit tests pin every canonical mapping and every business rule’s boundaries with input and expected rows
- Engine fixtures replay multi-phase scenarios through the SCD2 engines in throwaway datasets: watermarks, replays, deletes, reruns
- Data tests in every build: SCD2 invariants (one open row per key, unique keys, contiguous intervals) on every history, enforced at parse time
- Reconciliation of each canonical model against its sources, plus the business rules the mapping guarantees
- Errors stop the run before anything is served; warnings keep it green and are reported. Failing rows land in an audit dataset, one table per test
Built with: dbt unit tests, singular and generic tests, store_failures and pytest.