package server import "testing" func TestDeterminePlatform(t *testing.T) { cases := []struct { author string want platform err bool }{ {"did:plc:abc123", Bluesky, false}, {"npub1qwerty", Nostr, false}, {"@user@host.social", ActivityPub, false}, {"@user.bsky.social", Bluesky, false}, {"@user", Twitter, false}, {"0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef", Nostr, false}, {"user.bsky.social", Bluesky, false}, {"example.com", Bluesky, false}, {"justhandle", -1, true}, {"", -1, true}, } for _, c := range cases { got, err := determinePlatform(c.author) if c.err { if err == nil { t.Fatalf("%q: expected error", c.author) } continue } if err != nil { t.Fatalf("%q: unexpected error %v", c.author, err) } if got != c.want { t.Fatalf("%q: got %v want %v", c.author, got, c.want) } } } func TestPlatformFromString(t *testing.T) { cases := []struct { in string want platform ok bool }{ {"Bluesky", Bluesky, true}, {"ActivityPub", ActivityPub, true}, {"Nostr", Nostr, true}, {"Twitter", Twitter, true}, {"nope", -1, false}, } for _, c := range cases { got, ok := platformFromString(c.in) if ok != c.ok || got != c.want { t.Fatalf("%q: got %v ok %v, want %v %v", c.in, got, ok, c.want, c.ok) } } }