Live video on the AT Protocol
at eli/multitesting 63 lines 1.3 kB view raw
1package spxrpc 2 3import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7) 8 9func TestFeedSkeletonRE(t *testing.T) { 10 tests := []struct { 11 feed string 12 name string 13 did string 14 want bool 15 }{ 16 { 17 feed: "at://did:plc:oio4hkxaop4ao4wz2pp3f4cr/app.bsky.feed.generator/atproto", 18 did: "did:plc:oio4hkxaop4ao4wz2pp3f4cr", 19 name: "atproto", 20 want: true, 21 }, 22 { 23 feed: "at://did:web:iame.li/app.bsky.feed.generator/feedwithnumbers123", 24 did: "did:web:iame.li", 25 name: "feedwithnumbers123", 26 want: true, 27 }, 28 { 29 feed: "at://did:web:iame.li/app.bsky.feed.generator/feed-with-dashes", 30 did: "did:web:iame.li", 31 name: "feed-with-dashes", 32 want: true, 33 }, 34 { 35 feed: "foo", 36 want: false, 37 }, 38 { 39 feed: "at:///app.bsky.feed.generator/feedwithnumbers123", 40 want: false, 41 }, 42 { 43 feed: "at://did:web:iame.li/app.bsky.feed.generator/", 44 want: false, 45 }, 46 { 47 feed: "at://did:web:iame.li/app.bsky.feed.generator/feedwithnumbers123/errantsuffix", 48 want: false, 49 }, 50 } 51 for _, test := range tests { 52 t.Run(test.name, func(t *testing.T) { 53 did, name, err := parseFeedSkeleton(test.feed) 54 if !test.want { 55 require.Error(t, err) 56 return 57 } 58 require.NoError(t, err) 59 require.Equal(t, test.did, did) 60 require.Equal(t, test.name, name) 61 }) 62 } 63}