argand-site-registry/crates/argand-site-registry/tests/compatibility.rs

51 lines
1.8 KiB
Rust

// By Nic Weyand!
//! Frozen v0.3 public-contract coordinates used by migration and rollback tests.
#[test]
fn v03_contract_golden_is_explicit_and_unchanged() -> anyhow::Result<()> {
let contract: serde_json::Value =
serde_json::from_str(include_str!("fixtures/v03-contract.json"))?;
assert_eq!(contract["crate_version"], "0.3.0");
assert_eq!(
contract["signed_commit"],
"ac8282093d8a815c6227cff86e1f40714d510bcd"
);
assert_eq!(contract["writer_schema"], 3);
assert_eq!(contract["rules"], "argand.site-rules/v3");
assert_eq!(contract["source_manifest_schema"], "argand.site-source/v1");
assert_eq!(
contract["generation_receipt_schema"],
"argand.site-registry/v1"
);
assert_eq!(contract["export_schema"], "argand.site-export/v1");
assert_eq!(contract["current_pointer_schema"], "argand.site-current/v1");
assert_eq!(contract["diff_schema"], "argand.site-diff/v3");
assert_eq!(contract["selection_schema"], "argand.site-selection/v1");
assert_eq!(
contract["review_signature_namespace"],
argand_site_registry::review::SIGNATURE_NAMESPACE
);
assert_eq!(
contract["release_signature_namespace"],
"argand-site-registry"
);
assert_eq!(
contract["receipt_fields"].as_array().map(Vec::len),
Some(11)
);
assert_eq!(contract["lookup_fields"].as_array().map(Vec::len), Some(6));
assert_eq!(
contract["candidate_fields"].as_array().map(Vec::len),
Some(14)
);
assert_eq!(
contract["resolution_fields"].as_array().map(Vec::len),
Some(5)
);
assert_eq!(
contract["resolution_statuses"].as_array().map(Vec::len),
Some(8)
);
assert_eq!(contract["review_fields"].as_array().map(Vec::len), Some(10));
Ok(())
}