GoAT Site is library that implements Standard.site in Go.
atprotocol standard-site atproto library
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat(xrpc): tests for leaflet and pckt

authored by

Anhgelus Morhtuuzh and committed by tangled.org 62b7520a 346eaf0a

+96 -104
+2 -2
README.md
··· 41 41 } 42 42 43 43 var doc *site.Document 44 - url, err := doc.PublicationURL(context.Background(), client.Client) 44 + pubUrl, err := doc.PublicationURL(context.Background(), client.Client) 45 45 if err != nil { 46 46 panic(err) 47 47 } 48 - valid, err = doc.Verify(context.Background(), client, "did:plc:123", "doc_rkey") 48 + valid, err = doc.Verify(context.Background(), client, pubUrl, "did:plc:123", "doc_rkey") 49 49 if !valid { 50 50 panic("invalid document :(") 51 51 }
+50 -47
document_test.go
··· 6 6 "slices" 7 7 "testing" 8 8 9 - "github.com/bluesky-social/indigo/atproto/atclient" 10 - "github.com/bluesky-social/indigo/atproto/syntax" 11 9 "pgregory.net/rapid" 12 10 site "tangled.org/anhgelus.world/goat-site" 13 11 ) ··· 116 114 }) 117 115 } 118 116 119 - const testDoc = "at://did:plc:zcanytzlaumjwgaopolw6wes/site.standard.document/3mhmdp3qobs2o" 120 - 121 - var ( 122 - docURI syntax.ATURI 123 - docClient *atclient.APIClient 124 - ) 117 + var genDocAt = []string{ 118 + "at://did:plc:zcanytzlaumjwgaopolw6wes/site.standard.document/3mhmdp3qobs2o", // leaflet doc 119 + "at://did:plc:revjuqmkvrw6fnkxppqtszpv/site.standard.document/3mbfqhezge25u", // pckt doc 120 + } 125 121 126 122 func TestGetDocument(t *testing.T) { 127 123 if testing.Short() { 128 124 t.Skip("not doing http requests in short") 129 125 } 130 - uri, client := getClient(t, testDoc, &docURI, &docClient) 131 - doc, err := site.GetRecord[*site.Document](context.Background(), client, uri.Authority(), uri.RecordKey()) 132 - if err != nil { 133 - t.Fatal(err) 134 - } 135 - if doc == nil { 136 - t.Errorf("doc is nil") 126 + for _, uri := range genDocAt { 127 + uri, client := getClient(t, uri) 128 + doc, err := site.GetRecord[*site.Document](context.Background(), client, uri.Authority(), uri.RecordKey()) 129 + if err != nil { 130 + t.Fatal(err) 131 + } 132 + if doc == nil { 133 + t.Errorf("doc is nil") 134 + } 137 135 } 136 + 138 137 } 139 138 140 139 func TestListDocuments(t *testing.T) { 141 140 if testing.Short() { 142 141 t.Skip("not doing http requests in short") 143 142 } 144 - uri, client := getClient(t, testDoc, &docURI, &docClient) 145 - docs, _, err := site.ListRecords[*site.Document](context.Background(), client, uri.Authority(), "", false) 146 - if err != nil { 147 - t.Fatal(err) 148 - } 149 - if docs == nil { 150 - t.Errorf("docs is nil") 151 - } 152 - for i, doc := range docs { 153 - if doc == nil { 154 - t.Errorf("doc %d is nil", i) 143 + for _, uri := range genDocAt { 144 + uri, client := getClient(t, uri) 145 + docs, _, err := site.ListRecords[*site.Document](context.Background(), client, uri.Authority(), "", false) 146 + if err != nil { 147 + t.Fatal(err) 148 + } 149 + if docs == nil { 150 + t.Errorf("docs is nil") 151 + } 152 + for i, doc := range docs { 153 + if doc == nil { 154 + t.Errorf("doc %d is nil", i) 155 + } 155 156 } 156 157 } 157 158 } ··· 167 168 if testing.Short() { 168 169 t.Skip("not doing http requests in short") 169 170 } 170 - uri, client := getClient(t, testDoc, &docURI, &docClient) 171 - doc, err := site.GetRecord[*site.Document](context.Background(), client, uri.Authority(), uri.RecordKey()) 172 - if err != nil { 173 - t.Fatal(err) 174 - } 175 - pubURL, err := doc.PublicationURL(context.Background(), client) 176 - if err != nil { 177 - t.Fatal(err) 178 - } 179 - valid, err := doc.Verify( 180 - context.Background(), 181 - client.Client, 182 - pubURL, 183 - uri.Authority(), 184 - uri.RecordKey(), 185 - ) 186 - if err != nil { 187 - t.Fatal(err) 188 - } 189 - if !valid { 190 - t.Errorf("cannot verify %s", uri) 171 + for _, uri := range genDocAt { 172 + uri, client := getClient(t, uri) 173 + doc, err := site.GetRecord[*site.Document](context.Background(), client, uri.Authority(), uri.RecordKey()) 174 + if err != nil { 175 + t.Fatal(err) 176 + } 177 + pubURL, err := doc.PublicationURL(context.Background(), client) 178 + if err != nil { 179 + t.Fatal(err) 180 + } 181 + valid, err := doc.Verify( 182 + context.Background(), 183 + client.Client, 184 + pubURL, 185 + uri.Authority(), 186 + uri.RecordKey(), 187 + ) 188 + if err != nil { 189 + t.Fatal(err) 190 + } 191 + if !valid { 192 + t.Errorf("cannot verify %s", uri) 193 + } 191 194 } 192 195 }
+5 -14
lexicons_test.go
··· 3 3 import ( 4 4 "context" 5 5 "strings" 6 - "testing" 7 6 "time" 8 7 9 8 "github.com/bluesky-social/indigo/atproto/atclient" ··· 69 68 return rapid.StringOfN(valid, 1, -1, 128).Draw(t, label) 70 69 } 71 70 72 - func getClient(t *testing.T, test string, uri *syntax.ATURI, client **atclient.APIClient) (syntax.ATURI, *atclient.APIClient) { 73 - var err error 74 - defer func() { 75 - if err == nil { 76 - t.Log(uri.Authority().String(), uri.RecordKey()) 77 - } 78 - }() 79 - if *client != nil { 80 - return *uri, *client 81 - } 71 + func getClient(t rapid.TB, test string) (syntax.ATURI, *atclient.APIClient) { 82 72 dir := identity.DefaultDirectory() 83 - *uri, err = syntax.ParseATURI(test) 73 + uri, err := syntax.ParseATURI(test) 84 74 if err != nil { 85 75 t.Fatal(err) 86 76 } ··· 90 80 t.Fatal(err) 91 81 } 92 82 t.Log("using", id.PDSEndpoint(), "for", test) 93 - *client = atclient.NewAPIClient(id.PDSEndpoint()) 94 - return *uri, *client 83 + client := atclient.NewAPIClient(id.PDSEndpoint()) 84 + t.Log(uri.Authority().String(), uri.RecordKey()) 85 + return uri, client 95 86 } 96 87 97 88 func genDid(t *rapid.T, label string) string {
+39 -41
publication_test.go
··· 5 5 "encoding/json" 6 6 "testing" 7 7 8 - "github.com/bluesky-social/indigo/atproto/atclient" 9 - "github.com/bluesky-social/indigo/atproto/syntax" 10 8 "pgregory.net/rapid" 11 9 site "tangled.org/anhgelus.world/goat-site" 12 10 ) ··· 104 102 }) 105 103 } 106 104 107 - // leaflet publication 108 - // const testPub = "at://did:plc:yk4dd2qkboz2yv6tpubpc6co/site.standard.publication/3m6zrpzbs3s2y" 109 - 110 - // pckt publication (because they do not use the preferred time format!) 111 - const testPub = "at://did:plc:revjuqmkvrw6fnkxppqtszpv/site.standard.publication/3md4kftpfxs2z" 112 - 113 - var ( 114 - pubURI syntax.ATURI 115 - pubClient *atclient.APIClient 116 - ) 105 + var genPubAt = []string{ 106 + "at://did:plc:revjuqmkvrw6fnkxppqtszpv/site.standard.publication/3md4kftpfxs2z", // leaflet pub 107 + "at://did:plc:yk4dd2qkboz2yv6tpubpc6co/site.standard.publication/3m6zrpzbs3s2y", // pckt pub 108 + } 117 109 118 110 func TestGetPublication(t *testing.T) { 119 111 if testing.Short() { 120 112 t.Skip() 121 113 } 122 - uri, client := getClient(t, testPub, &pubURI, &pubClient) 123 - pub, err := site.GetRecord[*site.Publication](context.Background(), client, uri.Authority(), uri.RecordKey()) 124 - if err != nil { 125 - t.Fatal(err) 126 - } 127 - if pub == nil { 128 - t.Errorf("pub is nil") 114 + for _, uri := range genPubAt { 115 + uri, client := getClient(t, uri) 116 + pub, err := site.GetRecord[*site.Publication](context.Background(), client, uri.Authority(), uri.RecordKey()) 117 + if err != nil { 118 + t.Fatal(err) 119 + } 120 + if pub == nil { 121 + t.Errorf("pub is nil") 122 + } 129 123 } 130 124 } 131 125 ··· 133 127 if testing.Short() { 134 128 t.Skip("not doing http requests in short") 135 129 } 136 - uri, client := getClient(t, testPub, &pubURI, &pubClient) 137 - pubs, _, err := site.ListRecords[*site.Publication](context.Background(), client, uri.Authority(), "", false) 138 - if err != nil { 139 - t.Fatal(err) 140 - } 141 - if pubs == nil { 142 - t.Errorf("pubs is nil") 143 - } 144 - for i, pub := range pubs { 145 - if pub == nil { 146 - t.Errorf("pub %d is nil", i) 130 + for _, uri := range genPubAt { 131 + uri, client := getClient(t, uri) 132 + pubs, _, err := site.ListRecords[*site.Publication](context.Background(), client, uri.Authority(), "", false) 133 + if err != nil { 134 + t.Fatal(err) 135 + } 136 + if pubs == nil { 137 + t.Errorf("pubs is nil") 138 + } 139 + for i, pub := range pubs { 140 + if pub == nil { 141 + t.Errorf("pub %d is nil", i) 142 + } 147 143 } 148 144 } 149 145 } ··· 167 163 if testing.Short() { 168 164 t.Skip("not doing http requests in short") 169 165 } 170 - id, client := getClient(t, testPub, &pubURI, &pubClient) 171 - pub, err := site.GetRecord[*site.Publication](context.Background(), client, id.Authority(), id.RecordKey()) 172 - if err != nil { 173 - t.Fatal(err) 174 - } 175 - v, err := pub.Verify(context.Background(), client.Client, id.Authority(), id.RecordKey()) 176 - if err != nil { 177 - t.Fatal(err) 178 - } 179 - if !v { 180 - t.Errorf("cannot verify %s", id) 166 + for _, uri := range genPubAt { 167 + id, client := getClient(t, uri) 168 + pub, err := site.GetRecord[*site.Publication](context.Background(), client, id.Authority(), id.RecordKey()) 169 + if err != nil { 170 + t.Fatal(err) 171 + } 172 + v, err := pub.Verify(context.Background(), client.Client, id.Authority(), id.RecordKey()) 173 + if err != nil { 174 + t.Fatal(err) 175 + } 176 + if !v { 177 + t.Errorf("cannot verify %s", id) 178 + } 181 179 } 182 180 }