lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README

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:
Mcrates/blossom/src/publication_readiness.rs | 53+++++++++++++++++++++++++++++++++++++++++++++++++++++
Mcrates/blossom/tests/publication_readiness.rs | 40----------------------------------------
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",