porting all github actions from bluesky-social/indigo to tangled CI
at main 2.2 kB view raw
1//go:build localinterop 2 3package fakedata 4 5import ( 6 "testing" 7 8 "github.com/bluesky-social/indigo/util" 9 "github.com/bluesky-social/indigo/xrpc" 10 11 "github.com/stretchr/testify/assert" 12) 13 14const ( 15 pdsHost = "http://localhost:2583" 16 adminPassword = "admin" 17 celebCount = 2 18 regularCount = 5 19 maxPosts = 5 20 maxFollows = 5 21 maxMutes = 2 22 fracImage = 0.3 23 fracMention = 0.3 24) 25 26func genTestCatalog(t *testing.T, pdsHost string) AccountCatalog { 27 28 ap := adminPassword 29 xrpccAdmin := xrpc.Client{ 30 Client: util.TestingHTTPClient(), 31 Host: pdsHost, 32 } 33 xrpccAdmin.AdminToken = &ap 34 35 var catalog AccountCatalog 36 for i := 0; i < celebCount; i++ { 37 usr, err := GenAccount(&xrpccAdmin, i, "celebrity", "test", nil) 38 if err != nil { 39 t.Fatal(err) 40 } 41 catalog.Celebs = append(catalog.Celebs, *usr) 42 } 43 for i := 0; i < regularCount; i++ { 44 usr, err := GenAccount(&xrpccAdmin, i, "regular", "test", nil) 45 if err != nil { 46 t.Fatal(err) 47 } 48 catalog.Regulars = append(catalog.Regulars, *usr) 49 } 50 return catalog 51} 52 53// runs basic fakedata generation against a local PDS process. eg, the 54// typescript implementation, running locally or in docker 55func TestFakedataLocalInterop(t *testing.T) { 56 assert := assert.New(t) 57 _ = assert 58 59 catalog := genTestCatalog(t, pdsHost) 60 combined := catalog.Combined() 61 62 // generate profile, graph, posts 63 for _, acc := range combined { 64 xrpcc, err := AccountXrpcClient(pdsHost, &acc) 65 if err != nil { 66 t.Fatal(err) 67 } 68 assert.NoError(GenProfile(xrpcc, &acc, true, true)) 69 assert.NoError(GenFollowsAndMutes(xrpcc, &catalog, &acc, maxFollows, maxMutes)) 70 assert.NoError(GenPosts(xrpcc, &catalog, &acc, maxPosts, fracImage, fracMention)) 71 } 72 73 // generate interactions (additional posts, etc) 74 for _, acc := range combined { 75 xrpcc, err := AccountXrpcClient(pdsHost, &acc) 76 if err != nil { 77 t.Fatal(err) 78 } 79 assert.NoError(GenFollowsAndMutes(xrpcc, &catalog, &acc, maxFollows, maxMutes)) 80 assert.NoError(GenPosts(xrpcc, &catalog, &acc, maxPosts, fracImage, fracMention)) 81 } 82 83 // do browsing (read-only) 84 for _, acc := range combined { 85 xrpcc, err := AccountXrpcClient(pdsHost, &acc) 86 if err != nil { 87 t.Fatal(err) 88 } 89 assert.NoError(BrowseAccount(xrpcc, &acc)) 90 } 91}