porting all github actions from bluesky-social/indigo to tangled CI
at main 1.4 kB view raw
1package testing 2 3import ( 4 "context" 5 "encoding/json" 6 "fmt" 7 "os" 8 "testing" 9 10 appbsky "github.com/bluesky-social/indigo/api/bsky" 11 "github.com/bluesky-social/indigo/repo" 12) 13 14// ipfs dag import testing/repo_slice.car 15// ipfs dag get bafyreiapesxwibnujg44xphqq23ekkozgcmnenj2onnx4gkgy4uipziyc4 | jq . 16// ipfs dag get bafyreiapesxwibnujg44xphqq23ekkozgcmnenj2onnx4gkgy4uipziyc4 --output-codec=dag-cbor > testing/repo_record.cbor 17 18func TestRepoSliceParse(t *testing.T) { 19 ctx := context.TODO() 20 fi, err := os.Open("testdata/repo_slice.car") 21 if err != nil { 22 t.Fatal(err) 23 } 24 25 sliceRepo, err := repo.ReadRepoFromCar(ctx, fi) 26 if err != nil { 27 t.Fatal(err) 28 } 29 30 _, rec, err := sliceRepo.GetRecord(ctx, "app.bsky.feed.post/3jquh3emtzo2o") 31 if err != nil { 32 t.Fatal(err) 33 } 34 35 post, suc := rec.(*appbsky.FeedPost) 36 if !suc { 37 t.Fatal("failed to deserialize post") 38 } 39 postJson, err := json.Marshal(post) 40 if err != nil { 41 t.Fatal(err) 42 } 43 fmt.Println(string(postJson)) 44 45 img := post.Embed.EmbedImages.Images[0] 46 if img.Alt != "Sausage sandwich italian style" { 47 t.Fatal("didn't get expected Alt text") 48 } 49 50 if !img.Image.Ref.Defined() { 51 t.Fatal("got nil CID on image") 52 } 53 if img.Image.Ref.String() != "bafkreiblkobl6arfg3j7eft3akdhn2hmr2qmzfkefcgu4agnswvssg4a6a" { 54 t.Fatal("didn't get expected image blob CID") 55 } 56 if img.Image.MimeType != "image/jpeg" { 57 t.Fatal("didn't get expected image blob mimetype") 58 } 59}