test(source): author explicit trace and reject actual typed case spellings

This commit is contained in:
2026-09-24 20:38:33 -07:00
parent 33b86a4d6b
commit 520e50ce62
2 changed files with 33 additions and 2 deletions
@@ -54,11 +54,27 @@ fn current_formatter_roundtrips_complete_ordinary_examples_and_history() {
let input = example_bundle();
let before = input.clone();
let compiled = compile_bundle(&input, ProjectLimits::default()).unwrap();
let example = compiled.decoded.project;
let mut example = compiled.decoded.project;
assert!(example.elements.values().any(|e| e.layer() == Layer::Oa));
assert!(example.elements.values().any(|e| e.layer() == Layer::Sa));
assert!(!example.diagrams.is_empty());
assert!(!example.traces.is_empty());
// The published example has no traces: author an explicit participant link
// rather than assuming that the example already exercises this record class.
let trace_id = Id::from_u128(0x188b_0000_0000_0000_0000_0000_0000_0001);
let trace = Trace {
id: trace_id,
alias: "rescue_participant_trace".into(),
name: "Coordination participant realization".into(),
description: "Relates the operational coordination team to its selected system.".into(),
oa: Id::parse_str("00000000-0000-4000-8000-000000000102").unwrap(),
sa: Id::parse_str("00000000-0000-4000-8000-000000000301").unwrap(),
kind: TraceKind::Participant,
baseline: None,
};
assert_eq!(example.elements[&trace.oa].kind(), Kind::Entity);
assert_eq!(example.elements[&trace.sa].kind(), Kind::System);
assert!(example.traces.insert(trace_id, trace.clone()).is_none());
assert_eq!(example.traces[&trace_id], trace);
let historical =
crate::persistence::decode(include_bytes!("../tests/fixtures/v4-reviewed-prose.json"))
.unwrap();
@@ -165,7 +181,9 @@ fn typed_analysis_future_headers_and_limits_still_refuse() {
"sa_property",
"oa_check",
"sa_check",
"oa_analysis",
"oa_case",
"sa_analysis",
"sa_case",
"oa_engineering_property",
"sa_engineering_property",