lib

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

commit ddca924d944c2d0d432e40f970bd339353013ce9
parent 63599d4d1ed8585f9f10a2097310dd9d385cd474
Author: triesap <tyson@radroots.org>
Date:   Sun, 21 Jun 2026 21:16:08 +0000

events-codec: cover post decode branches

- Cover invalid post imeta tag lengths and blank imeta payloads.

- Cover non-farm address reference decode without relays so farm anchor and address-ref branching both execute.

- Validate the post target, full radroots_events_codec tests, crate check, diff check, and refreshed coverage run.

Diffstat:
Mcrates/events_codec/tests/post.rs | 37+++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+), 0 deletions(-)

diff --git a/crates/events_codec/tests/post.rs b/crates/events_codec/tests/post.rs @@ -551,6 +551,14 @@ fn post_media_structured_fields_encode_and_decode_imeta() { #[test] fn post_decode_rejects_more_invalid_imeta_shapes() { + for tags in [ + vec![TAG_IMETA.to_string()], + vec![TAG_IMETA.to_string(), " ".to_string()], + ] { + let err = post_from_event(KIND_POST, &[tags], "hello").unwrap_err(); + assert!(matches!(err, EventParseError::InvalidTag(TAG_IMETA))); + } + for entry in ["url ", "size not-a-number", "dim bad", "dim 0x10"] { let err = post_from_event( KIND_POST, @@ -566,6 +574,35 @@ fn post_decode_rejects_more_invalid_imeta_shapes() { } #[test] +fn post_decode_handles_non_farm_address_refs_without_relays() { + let article = format!("30023:article_author:{ARTICLE_D_TAG}"); + let decoded = post_from_event( + KIND_POST, + &[vec![TAG_A.to_string(), article.clone()]], + "address only", + ) + .unwrap(); + + assert!(decoded.farm.is_none()); + let refs = decoded.address_refs.expect("address refs"); + assert_eq!(refs.len(), 1); + match &refs[0] { + RadrootsSocialTarget::Address { + address, + author, + event_kind, + relays, + } => { + assert_eq!(address, &article); + assert_eq!(author.as_deref(), Some("article_author")); + assert_eq!(*event_kind, Some(30023)); + assert_eq!(relays, &None); + } + _ => panic!("expected address target"), + } +} + +#[test] fn post_from_content_requires_kind_and_content() { let err = post_from_content(KIND_COMMENT, "hello").unwrap_err(); assert!(matches!(