Skip to main content

trellis_testing/
lib.rs

1//! Companion testing helpers for Trellis.
2//!
3//! This crate is intentionally narrow. It helps tests inspect transaction
4//! traces, resource lifecycle plans, materialized output frames, and
5//! conformance support levels without executing host resources or replacing
6//! Rust's existing testing ecosystem.
7//!
8//! The Cargo package is named `trellis-testing` to avoid the crates.io
9//! normalized-name collision with `trellis_test`.
10
11#![forbid(unsafe_code)]
12#![deny(missing_docs)]
13
14mod audit;
15mod conformance;
16mod harness;
17mod host;
18mod host_status;
19mod oracle;
20mod output_ledger;
21mod output_ledger_dump;
22mod resource_assertions;
23mod resource_error;
24mod resource_ledger;
25mod resource_ledger_dump;
26mod resource_state;
27mod scenario;
28mod script;
29
30pub use audit::{
31    AuditAssertionError, OutputAuditContext, ResourceAuditContext, assert_dependency_path_exists,
32    assert_every_output_frame_has_revision, assert_every_output_frame_has_scope,
33    assert_every_resource_command_has_cause, assert_no_unexplained_output_frame,
34    assert_no_unexplained_plan,
35};
36pub use conformance::{
37    ConformanceCheckReport, ConformanceCheckResult, ConformanceFailure, ConformanceLevel,
38    ConformanceReport, ConformanceRunner, ConformanceSuite, conformance,
39};
40pub use harness::{HarnessStep, ScenarioTarget, TrellisHarness};
41pub use host::{FakeHost, FakeHostEvent};
42pub use host_status::{HostStatusClass, HostStatusEvent, HostStatusRecord};
43pub use oracle::{
44    FullRecomputeOracle, OracleCheck, OracleMismatch, assert_incremental_equals_full,
45};
46pub use output_ledger::{OutputLedger, OutputLedgerError, OutputSnapshot};
47pub use resource_error::{ResourceCommandContext, ResourceLedgerError, ResourceStatusContext};
48pub use resource_ledger::ResourceLedger;
49pub use resource_state::{ResourceCommandRecord, ResourceSnapshot};
50pub use scenario::{NoRedaction, Scenario, ScenarioError, ScenarioStep, TraceRedactor};
51pub use script::{TransactionScript, TransactionScriptStep, TransactionScriptStepBuilder};
52
53pub(crate) use script::StageOperation;
54
55#[cfg(feature = "proptest")]
56pub mod proptest;