lib

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

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 }