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:
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!(