summaryrefslogtreecommitdiff
path: root/internal/ap/extractattachments_test.go
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2023-10-26 11:59:10 +0200
committerLibravatar GitHub <noreply@github.com>2023-10-26 11:59:10 +0200
commit0b978f2c56c47ddbe0f611720d3605236f4e57d9 (patch)
treed5deece25e2aedebcacdff56900077688c6e6f7e /internal/ap/extractattachments_test.go
parent[chore]: Bump google.golang.org/grpc from 1.58.2 to 1.58.3 (#2301) (diff)
downloadgotosocial-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.go39
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{})
}