lib

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

mod.rs (1258B)


      1 pub mod decode;
      2 pub mod encode;
      3 
      4 #[cfg(test)]
      5 mod tests {
      6     use super::{decode::list_from_tags, encode::list_build_tags};
      7     use radroots_events::{
      8         kinds::KIND_LIST_MUTE,
      9         list::{RadrootsList, RadrootsListEntry},
     10     };
     11 
     12     #[test]
     13     fn list_tags_round_trip() {
     14         let list = RadrootsList {
     15             content: "private".to_string(),
     16             entries: vec![
     17                 RadrootsListEntry {
     18                     tag: "p".to_string(),
     19                     values: vec!["abc".to_string(), "wss://relay".to_string()],
     20                 },
     21                 RadrootsListEntry {
     22                     tag: "t".to_string(),
     23                     values: vec!["radroots".to_string()],
     24                 },
     25             ],
     26         };
     27         let tags = list_build_tags(&list).expect("build tags");
     28         let parsed =
     29             list_from_tags(KIND_LIST_MUTE, list.content.clone(), &tags).expect("parse list");
     30         assert_eq!(parsed.content, list.content);
     31         assert_eq!(parsed.entries.len(), list.entries.len());
     32         assert_eq!(parsed.entries[0].tag, "p");
     33         assert_eq!(parsed.entries[0].values[0], "abc");
     34         assert_eq!(parsed.entries[1].tag, "t");
     35         assert_eq!(parsed.entries[1].values[0], "radroots");
     36     }
     37 }