coverage_edges.rs (5144B)
1 #![cfg(feature = "json")] 2 3 use radroots_event::envelope::kind::KIND_POST; 4 use radroots_event_codec::decode::EventParseError; 5 6 fn assert_invalid_kind<T>(result: Result<T, EventParseError>, expected: &'static str, got: u32) { 7 match result { 8 Err(EventParseError::InvalidKind { 9 expected: found, 10 got: actual, 11 }) => { 12 assert_eq!(found, expected); 13 assert_eq!(actual, got); 14 } 15 Err(other) => panic!("unexpected parse error: {other:?}"), 16 Ok(_) => panic!("expected invalid kind"), 17 } 18 } 19 20 fn parsed_args() -> (String, String, u64, u32, String, Vec<Vec<String>>, String) { 21 ( 22 "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa".to_string(), 23 "585591529da0bab31b3b1b1f986611cf5f435dca84f978c89ee8a40cca7103df".to_string(), 24 1, 25 KIND_POST, 26 String::new(), 27 Vec::new(), 28 concat!( 29 "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc", 30 "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" 31 ) 32 .to_string(), 33 ) 34 } 35 36 #[test] 37 fn event_parse_error_duplicate_tag_code_and_display_are_stable() { 38 let error = EventParseError::DuplicateTag("d"); 39 40 assert_eq!(error.code(), "duplicate_tag"); 41 assert_eq!(error.to_string(), "duplicate tag: d"); 42 } 43 44 #[test] 45 fn parsed_wrappers_propagate_invalid_kind_errors() { 46 let (id, author, created_at, kind, content, tags, sig) = parsed_args(); 47 assert_invalid_kind( 48 radroots_event_codec::decode::article::parsed_from_event( 49 id, author, created_at, kind, content, tags, sig, 50 ), 51 "30023", 52 KIND_POST, 53 ); 54 55 let (id, author, created_at, kind, content, tags, sig) = parsed_args(); 56 assert_invalid_kind( 57 radroots_event_codec::decode::coop::parsed_from_event( 58 id, author, created_at, kind, content, tags, sig, 59 ), 60 "30360", 61 KIND_POST, 62 ); 63 64 let (id, author, created_at, kind, content, tags, sig) = parsed_args(); 65 assert_invalid_kind( 66 radroots_event_codec::decode::farm_crdt::parsed_from_event( 67 id, author, created_at, kind, content, tags, sig, 68 ), 69 "78", 70 KIND_POST, 71 ); 72 73 let (id, author, created_at, kind, content, tags, sig) = parsed_args(); 74 assert_invalid_kind( 75 radroots_event_codec::decode::farm_workspace::parsed_from_event( 76 id, author, created_at, kind, content, tags, sig, 77 ), 78 "30078", 79 KIND_POST, 80 ); 81 82 let (id, author, created_at, kind, content, tags, sig) = parsed_args(); 83 assert_invalid_kind( 84 radroots_event_codec::decode::file_metadata::parsed_from_event( 85 id, author, created_at, kind, content, tags, sig, 86 ), 87 "1063", 88 KIND_POST, 89 ); 90 91 let (id, author, created_at, kind, content, tags, sig) = parsed_args(); 92 assert_invalid_kind( 93 radroots_event_codec::decode::http_auth::parsed_from_event( 94 id, author, created_at, kind, content, tags, sig, 95 ), 96 "27235", 97 KIND_POST, 98 ); 99 100 let (id, author, created_at, kind, content, tags, sig) = parsed_args(); 101 assert_invalid_kind( 102 radroots_event_codec::decode::reaction::parsed_from_event( 103 id, author, created_at, kind, content, tags, sig, 104 ), 105 "7", 106 KIND_POST, 107 ); 108 109 let (id, author, created_at, kind, content, tags, sig) = parsed_args(); 110 assert_invalid_kind( 111 radroots_event_codec::decode::relay_auth::parsed_from_event( 112 id, author, created_at, kind, content, tags, sig, 113 ), 114 "22242", 115 KIND_POST, 116 ); 117 118 let (id, author, created_at, kind, content, tags, sig) = parsed_args(); 119 assert_invalid_kind( 120 radroots_event_codec::decode::report::parsed_from_event( 121 id, author, created_at, kind, content, tags, sig, 122 ), 123 "1984", 124 KIND_POST, 125 ); 126 127 let (id, author, created_at, kind, content, tags, sig) = parsed_args(); 128 assert_invalid_kind( 129 radroots_event_codec::decode::repost::repost_parsed_from_event( 130 id, author, created_at, kind, content, tags, sig, 131 ), 132 "6", 133 KIND_POST, 134 ); 135 136 let (id, author, created_at, kind, content, tags, sig) = parsed_args(); 137 assert_invalid_kind( 138 radroots_event_codec::decode::repost::generic_repost_parsed_from_event( 139 id, author, created_at, kind, content, tags, sig, 140 ), 141 "16", 142 KIND_POST, 143 ); 144 145 let (id, author, created_at, kind, content, tags, sig) = parsed_args(); 146 assert_invalid_kind( 147 radroots_event_codec::decode::resource_area::parsed_from_event( 148 id, author, created_at, kind, content, tags, sig, 149 ), 150 "30370", 151 KIND_POST, 152 ); 153 154 let (id, author, created_at, kind, content, tags, sig) = parsed_args(); 155 assert_invalid_kind( 156 radroots_event_codec::decode::resource_cap::parsed_from_event( 157 id, author, created_at, kind, content, tags, sig, 158 ), 159 "30371", 160 KIND_POST, 161 ); 162 }