commit 7c58bedda22d81704007a148aef972087fddc553
parent 2ba94e320150ff2e30ee3ca232fd665d8a29fb73
Author: triesap <tyson@radroots.org>
Date: Mon, 27 Jul 2026 20:42:52 +0000
contract: restore immutable readiness predecessor
- return the governed publication readiness test artifact to exact bytes
- relocate strict evidence wire cases into mutable source-owned tests
- preserve invalid media raster and URL branch coverage
- keep the exact Blossom coverage policy at 100 percent
Diffstat:
2 files changed, 53 insertions(+), 40 deletions(-)
diff --git a/crates/blossom/src/publication_readiness.rs b/crates/blossom/src/publication_readiness.rs
@@ -1650,6 +1650,59 @@ mod tests {
}
}
+ #[cfg(all(feature = "raster-decode", feature = "serde"))]
+ #[test]
+ fn readiness_evidence_wire_rejects_invalid_and_noncanonical_fields() {
+ fn canonical_wire() -> PublicationReadinessEvidenceWire {
+ let expected = verified(PNG);
+ let (upload, head, get) = observations(PNG);
+ let evidence = verify_publication_readiness(
+ &expected,
+ PNG,
+ RadrootsBlossomAuthoredRasterDimensions::Unspecified,
+ &upload,
+ &head,
+ &get,
+ )
+ .unwrap();
+ serde_json::from_slice(&evidence.to_canonical_json().unwrap()).unwrap()
+ }
+
+ for media_type in ["not a media type", "image/PNG", "image/gif"] {
+ let mut wire = canonical_wire();
+ wire.media_type = media_type.to_string();
+ assert_eq!(
+ readiness_evidence_from_wire(wire).unwrap_err().code(),
+ "publication_readiness_evidence_field_invalid",
+ "{media_type}",
+ );
+ }
+
+ for raster_format in ["still_webp", "unknown"] {
+ let mut wire = canonical_wire();
+ wire.raster_format = raster_format.to_string();
+ assert_eq!(
+ readiness_evidence_from_wire(wire).unwrap_err().code(),
+ "publication_readiness_evidence_field_invalid",
+ "{raster_format}",
+ );
+ }
+
+ let canonical_url = canonical_wire().url;
+ for url in [
+ "not a URL".to_string(),
+ canonical_url.replace("cdn.example", "CDN.example"),
+ ] {
+ let mut wire = canonical_wire();
+ wire.url = url.clone();
+ assert_eq!(
+ readiness_evidence_from_wire(wire).unwrap_err().code(),
+ "publication_readiness_evidence_field_invalid",
+ "{url}",
+ );
+ }
+ }
+
#[test]
fn bounded_get_collector_rejects_status_bounds_and_body_shape() {
let url = verified(PNG).url().clone();
diff --git a/crates/blossom/tests/publication_readiness.rs b/crates/blossom/tests/publication_readiness.rs
@@ -174,51 +174,11 @@ fn publication_readiness_evidence_revalidates_every_persisted_fact() {
"publication_readiness_evidence_field_invalid",
),
(
- "media_type",
- serde_json::json!("not a media type"),
- "publication_readiness_evidence_field_invalid",
- ),
- (
- "media_type",
- serde_json::json!("image/PNG"),
- "publication_readiness_evidence_field_invalid",
- ),
- (
- "media_type",
- serde_json::json!("image/gif"),
- "publication_readiness_evidence_field_invalid",
- ),
- (
"raster_format",
serde_json::json!("jpeg"),
"publication_readiness_evidence_field_invalid",
),
(
- "raster_format",
- serde_json::json!("still_webp"),
- "publication_readiness_evidence_field_invalid",
- ),
- (
- "raster_format",
- serde_json::json!("unknown"),
- "publication_readiness_evidence_field_invalid",
- ),
- (
- "url",
- serde_json::json!("not a URL"),
- "publication_readiness_evidence_field_invalid",
- ),
- (
- "url",
- serde_json::json!(
- evidence
- .url()
- .as_str()
- .replace("cdn.example", "CDN.example")
- ),
- "publication_readiness_evidence_field_invalid",
- ),
- (
"bud02_status",
serde_json::json!(202),
"publication_readiness_evidence_field_invalid",