Skip to content

Commit 8ad4128

Browse files
committed
nostr/nips: add test case for Badge Award Event
1 parent 8ebd7d4 commit 8ad4128

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

crates/nostr/src/nips/nip58.rs

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,8 +326,15 @@ impl ProfileBadgesEvent {
326326

327327
#[cfg(test)]
328328
mod tests {
329+
use std::str::FromStr;
330+
329331
use super::*;
330332

333+
fn get_badge_with_id_only(id: String, keys: &Keys) -> BadgeDefinition {
334+
let builder = BadgeDefinitionBuilder::new(id);
335+
builder.build(keys).unwrap()
336+
}
337+
331338
#[test]
332339
fn test_badge_definition_builder() {
333340
let example_event_json = r#"{"content":"","id":"378f145897eea948952674269945e88612420db35791784abf0616b4fed56ef7","sig":"fd0954de564cae9923c2d8ee9ab2bf35bc19757f8e328a978958a2fcc950eaba0754148a203adec29b7b64080d0cf5a32bebedd768ea6eb421a6b751bb4584a8","created_at":1671739153,"pubkey":"79dff8f82963424e0bb02708a22e44b4980893e3a4be0fa3cb60a43b946764e3","kind":30009,"tags":[["d","bravery"],["name","Medal of Bravery"],["image","https://nostr.academy/awards/bravery.png","1024x1024"],["description","Awarded to users demonstrating bravery"],["thumb","https://nostr.academy/awards/bravery_256x256.png","256x256"]]}"#;
@@ -354,4 +361,45 @@ mod tests {
354361
assert_eq!(badge_definition_event.kind, Kind::BadgeDefinition);
355362
assert_eq!(badge_definition_event.tags, example_event.tags);
356363
}
364+
#[test]
365+
fn test_badge_award() {
366+
let keys = Keys::generate();
367+
let pub_key = keys.public_key();
368+
369+
let example_event_json = format!(
370+
r#"{{
371+
"content": "",
372+
"id": "378f145897eea948952674269945e88612420db35791784abf0616b4fed56ef7",
373+
"kind": 8,
374+
"pubkey": "{}",
375+
"sig": "fd0954de564cae9923c2d8ee9ab2bf35bc19757f8e328a978958a2fcc950eaba0754148a203adec29b7b64080d0cf5a32bebedd768ea6eb421a6b751bb4584a8",
376+
"created_at": 1671739153,
377+
"tags": [
378+
["a", "30009:{}:bravery"],
379+
["p", "{}", "wss://relay"],
380+
["p", "{}", "wss://relay"]
381+
]
382+
}}"#,
383+
pub_key.to_string(),
384+
pub_key.to_string(),
385+
pub_key.to_string(),
386+
pub_key.to_string()
387+
);
388+
389+
let example_event: Event = serde_json::from_str(&example_event_json).unwrap();
390+
391+
let relay_url = UncheckedUrl::from_str("wss://relay").unwrap();
392+
let badge_definition = get_badge_with_id_only("bravery".to_owned(), &keys).0;
393+
394+
let awarded_pub_keys = vec![
395+
Tag::PubKey(pub_key.clone(), Some(relay_url.clone())),
396+
Tag::PubKey(pub_key.clone(), Some(relay_url.clone())),
397+
];
398+
let badge_award = BadgeAward::new(&badge_definition, awarded_pub_keys, &keys)
399+
.unwrap()
400+
.0;
401+
402+
assert_eq!(badge_award.kind, Kind::BadgeAward);
403+
assert_eq!(badge_award.tags, example_event.tags);
404+
}
357405
}

0 commit comments

Comments
 (0)