package nostr import ( "testing" ) func TestTagHelpers(t *testing.T) { tags := Tags{ Tag{"x"}, Tag{"p", "abcdef", "wss://x.com"}, Tag{"p", "123456", "wss://y.com"}, Tag{"e", "eeeeee"}, Tag{"e", "ffffff"}, } if tags.GetFirst([]string{"x"}) == nil { t.Error("failed to get existing prefix") } if tags.GetFirst([]string{"x", ""}) != nil { t.Error("got with wrong prefix") } if tags.GetFirst([]string{"p", "abcdef", "wss://"}) == nil { t.Error("failed to get with existing prefix") } if tags.GetFirst([]string{"p", "abcdef", ""}) == nil { t.Error("failed to get with existing prefix (blank last string)") } if (*(tags.GetLast([]string{"e"})))[1] != "ffffff" { t.Error("failed to get last") } if len(tags.GetAll([]string{"e", ""})) != 2 { t.Error("failed to get all") } if len(tags.AppendUnique(Tag{"e", "ffffff"})) != 5 { t.Error("append unique changed the array size when existed") } if len(tags.AppendUnique(Tag{"e", "bbbbbb"})) != 6 { t.Error("append unique failed to append when didn't exist") } if tags.AppendUnique(Tag{"e", "eeeeee"})[4][1] != "ffffff" { t.Error("append unique changed the order") } if tags.AppendUnique(Tag{"e", "eeeeee"})[3][1] != "eeeeee" { t.Error("append unique changed the order") } }