diff options
author | 2023-10-26 11:59:10 +0200 | |
---|---|---|
committer | 2023-10-26 11:59:10 +0200 | |
commit | 0b978f2c56c47ddbe0f611720d3605236f4e57d9 (patch) | |
tree | d5deece25e2aedebcacdff56900077688c6e6f7e /internal/ap/extractattachments_test.go | |
parent | [chore]: Bump google.golang.org/grpc from 1.58.2 to 1.58.3 (#2301) (diff) | |
download | gotosocial-0b978f2c56c47ddbe0f611720d3605236f4e57d9.tar.xz |
[bugfix] Extract description as `summary` first, fall back to `name` (#2303)
Diffstat (limited to 'internal/ap/extractattachments_test.go')
-rw-r--r-- | internal/ap/extractattachments_test.go | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/internal/ap/extractattachments_test.go b/internal/ap/extractattachments_test.go index 3d5fc7e89..1ec6e53c8 100644 --- a/internal/ap/extractattachments_test.go +++ b/internal/ap/extractattachments_test.go @@ -18,6 +18,8 @@ package ap_test import ( + "context" + "encoding/json" "testing" "github.com/stretchr/testify/suite" @@ -38,6 +40,43 @@ func (suite *ExtractAttachmentsTestSuite) TestExtractAttachmentMissingURL() { suite.Nil(attachment) } +func (suite *ExtractAttachmentsTestSuite) TestExtractDescription() { + // Note: normally a single attachment on a Note or + // similar wouldn't have the `@context` field set, + // but we set it here because we're parsing it as + // a discrete/standalone AP Object for this test. + attachmentableJSON := `{ + "@context": "https://www.w3.org/ns/activitystreams", + "mediaType": "image/jpeg", + "name": "z64KTcw2h2bZ8s67k2.jpg", + "summary": "A very large panel that is entirely twist switches", + "type": "Document", + "url": "https://example.org/d/XzKw4M2Sc1pBxj3hY4.jpg" +}` + + raw := make(map[string]interface{}) + if err := json.Unmarshal([]byte(attachmentableJSON), &raw); err != nil { + suite.FailNow(err.Error()) + } + + t, err := streams.ToType(context.Background(), raw) + if err != nil { + suite.FailNow(err.Error()) + } + + attachmentable, ok := t.(ap.Attachmentable) + if !ok { + suite.FailNow("type was not Attachmentable") + } + + attachment, err := ap.ExtractAttachment(attachmentable) + if err != nil { + suite.FailNow(err.Error()) + } + + suite.Equal("A very large panel that is entirely twist switches", attachment.Description) +} + func TestExtractAttachmentsTestSuite(t *testing.T) { suite.Run(t, &ExtractAttachmentsTestSuite{}) } |