commit a49fbfe8b313b77e1639d939b8b61bc3e634bc78
parent 58f8014a7d26e299b3ff7e1c77f6c0e279773ceb
Author: triesap <tyson@radroots.org>
Date: Sat, 13 Jun 2026 13:35:33 -0700
events: enforce contract registry invariants
Diffstat:
1 file changed, 26 insertions(+), 0 deletions(-)
diff --git a/crates/events/src/contract.rs b/crates/events/src/contract.rs
@@ -2678,6 +2678,32 @@ mod tests {
}
#[test]
+ fn event_contract_classes_match_kind_contracts() {
+ for contract in all_event_contracts()
+ .iter()
+ .chain(LIST_SET_GENERIC_EVENT_CONTRACTS.iter())
+ {
+ let kind = kind_contract(contract.kind).expect("event kind contract");
+ assert_eq!(contract.class, kind.class, "{}", contract.id);
+ }
+ }
+
+ #[test]
+ fn every_event_contract_is_listed_by_its_kind_contract() {
+ for contract in all_event_contracts()
+ .iter()
+ .chain(LIST_SET_GENERIC_EVENT_CONTRACTS.iter())
+ {
+ let kind = kind_contract(contract.kind).expect("event kind contract");
+ assert!(
+ kind.accepted_event_contracts.contains(&contract.id),
+ "{}",
+ contract.id
+ );
+ }
+ }
+
+ #[test]
fn order_request_listing_event_contract_is_event_pointer() {
let contract = event_contract("radroots.order.request.v1").expect("order request");
let tag = contract