package_fixture_freshness.rs (2238B)
1 use std::{fs, path::Path}; 2 3 #[test] 4 fn packaged_conformance_fixtures_match_canonical_contracts() { 5 let workspace = Path::new(env!("CARGO_MANIFEST_DIR")) 6 .join("../..") 7 .canonicalize() 8 .expect("workspace root"); 9 for (canonical, packaged) in [ 10 ( 11 "contracts/conformance/vectors/core/value_serialization.v1.json", 12 "crates/core/tests/fixtures/value_serialization.v1.json", 13 ), 14 ( 15 "contracts/conformance/vectors/identity/public_values.v1.json", 16 "crates/identity/tests/fixtures/public_values.v1.json", 17 ), 18 ( 19 "contracts/conformance/vectors/protocol/wire_values.v1.json", 20 "crates/protocol/tests/fixtures/wire_values.v1.json", 21 ), 22 ( 23 "contracts/codegen/protocol_v1.inventory.json", 24 "crates/protocol/tests/fixtures/protocol_v1.inventory.json", 25 ), 26 ( 27 "contracts/conformance/vectors/event/nip01_wire.v1.json", 28 "crates/event/tests/fixtures/nip01_wire.v1.json", 29 ), 30 ( 31 "contracts/conformance/vectors/nip46/current_session.v1.json", 32 "crates/nostr_connect/tests/fixtures/current_session.v1.json", 33 ), 34 ( 35 "contracts/conformance/vectors/transport/target_uri.v1.json", 36 "crates/transport/tests/fixtures/target_uri.v1.json", 37 ), 38 ( 39 "contracts/knowledge/knowledge_event_contract_manifest.v2.json", 40 "crates/event_codec/tests/fixtures/knowledge_event_contract_manifest.v2.json", 41 ), 42 ( 43 "contracts/knowledge/knowledge_event_contract_manifest.v2.sha256", 44 "crates/event_codec/tests/fixtures/knowledge_event_contract_manifest.v2.sha256", 45 ), 46 ( 47 "contracts/conformance/vectors/knowledge/public_surface.v1.json", 48 "crates/event_codec/tests/fixtures/knowledge_public_surface.v1.json", 49 ), 50 ] { 51 assert_eq!( 52 fs::read(workspace.join(canonical)).expect("canonical fixture"), 53 fs::read(workspace.join(packaged)).expect("packaged fixture"), 54 "packaged fixture {packaged} drifted from {canonical}", 55 ); 56 } 57 }