forked from mirrors/gotosocial
[chore] Remove omitempty on account source; refactor tests to use prettyprint json (#1337)
* remove omitEmpty tag on account source items * update tests
This commit is contained in:
parent
5318054808
commit
eafd73c292
18 changed files with 1605 additions and 163 deletions
|
@ -19,6 +19,7 @@
|
||||||
package users_test
|
package users_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"context"
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
@ -76,7 +77,15 @@ func (suite *OutboxGetTestSuite) TestGetOutbox() {
|
||||||
defer result.Body.Close()
|
defer result.Body.Close()
|
||||||
b, err := ioutil.ReadAll(result.Body)
|
b, err := ioutil.ReadAll(result.Body)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
suite.Equal(`{"@context":"https://www.w3.org/ns/activitystreams","first":"http://localhost:8080/users/the_mighty_zork/outbox?page=true","id":"http://localhost:8080/users/the_mighty_zork/outbox","type":"OrderedCollection"}`, string(b))
|
dst := new(bytes.Buffer)
|
||||||
|
err = json.Indent(dst, b, "", " ")
|
||||||
|
suite.NoError(err)
|
||||||
|
suite.Equal(`{
|
||||||
|
"@context": "https://www.w3.org/ns/activitystreams",
|
||||||
|
"first": "http://localhost:8080/users/the_mighty_zork/outbox?page=true",
|
||||||
|
"id": "http://localhost:8080/users/the_mighty_zork/outbox",
|
||||||
|
"type": "OrderedCollection"
|
||||||
|
}`, dst.String())
|
||||||
|
|
||||||
m := make(map[string]interface{})
|
m := make(map[string]interface{})
|
||||||
err = json.Unmarshal(b, &m)
|
err = json.Unmarshal(b, &m)
|
||||||
|
@ -135,7 +144,26 @@ func (suite *OutboxGetTestSuite) TestGetOutboxFirstPage() {
|
||||||
defer result.Body.Close()
|
defer result.Body.Close()
|
||||||
b, err := ioutil.ReadAll(result.Body)
|
b, err := ioutil.ReadAll(result.Body)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
suite.Equal(`{"@context":"https://www.w3.org/ns/activitystreams","id":"http://localhost:8080/users/the_mighty_zork/outbox?page=true","next":"http://localhost:8080/users/the_mighty_zork/outbox?page=true\u0026max_id=01F8MHAMCHF6Y650WCRSCP4WMY","orderedItems":{"actor":"http://localhost:8080/users/the_mighty_zork","cc":"http://localhost:8080/users/the_mighty_zork/followers","id":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/activity","object":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY","published":"2021-10-20T10:40:37Z","to":"https://www.w3.org/ns/activitystreams#Public","type":"Create"},"partOf":"http://localhost:8080/users/the_mighty_zork/outbox","prev":"http://localhost:8080/users/the_mighty_zork/outbox?page=true\u0026min_id=01F8MHAMCHF6Y650WCRSCP4WMY","type":"OrderedCollectionPage"}`, string(b))
|
dst := new(bytes.Buffer)
|
||||||
|
err = json.Indent(dst, b, "", " ")
|
||||||
|
suite.NoError(err)
|
||||||
|
suite.Equal(`{
|
||||||
|
"@context": "https://www.w3.org/ns/activitystreams",
|
||||||
|
"id": "http://localhost:8080/users/the_mighty_zork/outbox?page=true",
|
||||||
|
"next": "http://localhost:8080/users/the_mighty_zork/outbox?page=true\u0026max_id=01F8MHAMCHF6Y650WCRSCP4WMY",
|
||||||
|
"orderedItems": {
|
||||||
|
"actor": "http://localhost:8080/users/the_mighty_zork",
|
||||||
|
"cc": "http://localhost:8080/users/the_mighty_zork/followers",
|
||||||
|
"id": "http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/activity",
|
||||||
|
"object": "http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY",
|
||||||
|
"published": "2021-10-20T10:40:37Z",
|
||||||
|
"to": "https://www.w3.org/ns/activitystreams#Public",
|
||||||
|
"type": "Create"
|
||||||
|
},
|
||||||
|
"partOf": "http://localhost:8080/users/the_mighty_zork/outbox",
|
||||||
|
"prev": "http://localhost:8080/users/the_mighty_zork/outbox?page=true\u0026min_id=01F8MHAMCHF6Y650WCRSCP4WMY",
|
||||||
|
"type": "OrderedCollectionPage"
|
||||||
|
}`, dst.String())
|
||||||
|
|
||||||
m := make(map[string]interface{})
|
m := make(map[string]interface{})
|
||||||
err = json.Unmarshal(b, &m)
|
err = json.Unmarshal(b, &m)
|
||||||
|
@ -198,7 +226,16 @@ func (suite *OutboxGetTestSuite) TestGetOutboxNextPage() {
|
||||||
defer result.Body.Close()
|
defer result.Body.Close()
|
||||||
b, err := ioutil.ReadAll(result.Body)
|
b, err := ioutil.ReadAll(result.Body)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
suite.Equal(`{"@context":"https://www.w3.org/ns/activitystreams","id":"http://localhost:8080/users/the_mighty_zork/outbox?page=true\u0026maxID=01F8MHAMCHF6Y650WCRSCP4WMY","orderedItems":[],"partOf":"http://localhost:8080/users/the_mighty_zork/outbox","type":"OrderedCollectionPage"}`, string(b))
|
dst := new(bytes.Buffer)
|
||||||
|
err = json.Indent(dst, b, "", " ")
|
||||||
|
suite.NoError(err)
|
||||||
|
suite.Equal(`{
|
||||||
|
"@context": "https://www.w3.org/ns/activitystreams",
|
||||||
|
"id": "http://localhost:8080/users/the_mighty_zork/outbox?page=true\u0026maxID=01F8MHAMCHF6Y650WCRSCP4WMY",
|
||||||
|
"orderedItems": [],
|
||||||
|
"partOf": "http://localhost:8080/users/the_mighty_zork/outbox",
|
||||||
|
"type": "OrderedCollectionPage"
|
||||||
|
}`, dst.String())
|
||||||
|
|
||||||
m := make(map[string]interface{})
|
m := make(map[string]interface{})
|
||||||
err = json.Unmarshal(b, &m)
|
err = json.Unmarshal(b, &m)
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
package admin_test
|
package admin_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
|
"encoding/json"
|
||||||
"io"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/http/httptest"
|
"net/http/httptest"
|
||||||
|
@ -44,8 +46,19 @@ func (suite *EmojiCategoriesGetTestSuite) TestEmojiCategoriesGet() {
|
||||||
b, err := io.ReadAll(recorder.Body)
|
b, err := io.ReadAll(recorder.Body)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
suite.NotNil(b)
|
suite.NotNil(b)
|
||||||
|
dst := new(bytes.Buffer)
|
||||||
suite.Equal(`[{"id":"01GGQ989PTT9PMRN4FZ1WWK2B9","name":"cute stuff"},{"id":"01GGQ8V4993XK67B2JB396YFB7","name":"reactions"}]`, string(b))
|
err = json.Indent(dst, b, "", " ")
|
||||||
|
suite.NoError(err)
|
||||||
|
suite.Equal(`[
|
||||||
|
{
|
||||||
|
"id": "01GGQ989PTT9PMRN4FZ1WWK2B9",
|
||||||
|
"name": "cute stuff"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "01GGQ8V4993XK67B2JB396YFB7",
|
||||||
|
"name": "reactions"
|
||||||
|
}
|
||||||
|
]`, dst.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestEmojiCategoriesGetTestSuite(t *testing.T) {
|
func TestEmojiCategoriesGetTestSuite(t *testing.T) {
|
||||||
|
|
|
@ -19,7 +19,9 @@
|
||||||
package admin_test
|
package admin_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"context"
|
"context"
|
||||||
|
"encoding/json"
|
||||||
"io"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/http/httptest"
|
"net/http/httptest"
|
||||||
|
@ -48,8 +50,22 @@ func (suite *EmojiDeleteTestSuite) TestEmojiDelete1() {
|
||||||
b, err := io.ReadAll(recorder.Body)
|
b, err := io.ReadAll(recorder.Body)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
suite.NotNil(b)
|
suite.NotNil(b)
|
||||||
|
dst := new(bytes.Buffer)
|
||||||
suite.Equal(`{"shortcode":"rainbow","url":"http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01F8MH9H8E4VG3KDYJR9EGPXCQ.png","static_url":"http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/static/01F8MH9H8E4VG3KDYJR9EGPXCQ.png","visible_in_picker":true,"category":"reactions","id":"01F8MH9H8E4VG3KDYJR9EGPXCQ","disabled":false,"updated_at":"2021-09-20T10:40:37.000Z","total_file_size":47115,"content_type":"image/png","uri":"http://localhost:8080/emoji/01F8MH9H8E4VG3KDYJR9EGPXCQ"}`, string(b))
|
err = json.Indent(dst, b, "", " ")
|
||||||
|
suite.NoError(err)
|
||||||
|
suite.Equal(`{
|
||||||
|
"shortcode": "rainbow",
|
||||||
|
"url": "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01F8MH9H8E4VG3KDYJR9EGPXCQ.png",
|
||||||
|
"static_url": "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/static/01F8MH9H8E4VG3KDYJR9EGPXCQ.png",
|
||||||
|
"visible_in_picker": true,
|
||||||
|
"category": "reactions",
|
||||||
|
"id": "01F8MH9H8E4VG3KDYJR9EGPXCQ",
|
||||||
|
"disabled": false,
|
||||||
|
"updated_at": "2021-09-20T10:40:37.000Z",
|
||||||
|
"total_file_size": 47115,
|
||||||
|
"content_type": "image/png",
|
||||||
|
"uri": "http://localhost:8080/emoji/01F8MH9H8E4VG3KDYJR9EGPXCQ"
|
||||||
|
}`, dst.String())
|
||||||
|
|
||||||
// emoji should no longer be in the db
|
// emoji should no longer be in the db
|
||||||
dbEmoji, err := suite.db.GetEmojiByID(context.Background(), testEmoji.ID)
|
dbEmoji, err := suite.db.GetEmojiByID(context.Background(), testEmoji.ID)
|
||||||
|
|
|
@ -19,6 +19,8 @@
|
||||||
package admin_test
|
package admin_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
|
"encoding/json"
|
||||||
"io"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/http/httptest"
|
"net/http/httptest"
|
||||||
|
@ -46,8 +48,22 @@ func (suite *EmojiGetTestSuite) TestEmojiGet1() {
|
||||||
b, err := io.ReadAll(recorder.Body)
|
b, err := io.ReadAll(recorder.Body)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
suite.NotNil(b)
|
suite.NotNil(b)
|
||||||
|
dst := new(bytes.Buffer)
|
||||||
suite.Equal(`{"shortcode":"rainbow","url":"http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01F8MH9H8E4VG3KDYJR9EGPXCQ.png","static_url":"http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/static/01F8MH9H8E4VG3KDYJR9EGPXCQ.png","visible_in_picker":true,"category":"reactions","id":"01F8MH9H8E4VG3KDYJR9EGPXCQ","disabled":false,"updated_at":"2021-09-20T10:40:37.000Z","total_file_size":47115,"content_type":"image/png","uri":"http://localhost:8080/emoji/01F8MH9H8E4VG3KDYJR9EGPXCQ"}`, string(b))
|
err = json.Indent(dst, b, "", " ")
|
||||||
|
suite.NoError(err)
|
||||||
|
suite.Equal(`{
|
||||||
|
"shortcode": "rainbow",
|
||||||
|
"url": "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01F8MH9H8E4VG3KDYJR9EGPXCQ.png",
|
||||||
|
"static_url": "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/static/01F8MH9H8E4VG3KDYJR9EGPXCQ.png",
|
||||||
|
"visible_in_picker": true,
|
||||||
|
"category": "reactions",
|
||||||
|
"id": "01F8MH9H8E4VG3KDYJR9EGPXCQ",
|
||||||
|
"disabled": false,
|
||||||
|
"updated_at": "2021-09-20T10:40:37.000Z",
|
||||||
|
"total_file_size": 47115,
|
||||||
|
"content_type": "image/png",
|
||||||
|
"uri": "http://localhost:8080/emoji/01F8MH9H8E4VG3KDYJR9EGPXCQ"
|
||||||
|
}`, dst.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *EmojiGetTestSuite) TestEmojiGet2() {
|
func (suite *EmojiGetTestSuite) TestEmojiGet2() {
|
||||||
|
@ -64,8 +80,22 @@ func (suite *EmojiGetTestSuite) TestEmojiGet2() {
|
||||||
b, err := io.ReadAll(recorder.Body)
|
b, err := io.ReadAll(recorder.Body)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
suite.NotNil(b)
|
suite.NotNil(b)
|
||||||
|
dst := new(bytes.Buffer)
|
||||||
suite.Equal(`{"shortcode":"yell","url":"http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01GD5KP5CQEE1R3X43Y1EHS2CW.png","static_url":"http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/static/01GD5KP5CQEE1R3X43Y1EHS2CW.png","visible_in_picker":false,"id":"01GD5KP5CQEE1R3X43Y1EHS2CW","disabled":false,"domain":"fossbros-anonymous.io","updated_at":"2020-03-18T12:12:00.000Z","total_file_size":21697,"content_type":"image/png","uri":"http://fossbros-anonymous.io/emoji/01GD5KP5CQEE1R3X43Y1EHS2CW"}`, string(b))
|
err = json.Indent(dst, b, "", " ")
|
||||||
|
suite.NoError(err)
|
||||||
|
suite.Equal(`{
|
||||||
|
"shortcode": "yell",
|
||||||
|
"url": "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01GD5KP5CQEE1R3X43Y1EHS2CW.png",
|
||||||
|
"static_url": "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/static/01GD5KP5CQEE1R3X43Y1EHS2CW.png",
|
||||||
|
"visible_in_picker": false,
|
||||||
|
"id": "01GD5KP5CQEE1R3X43Y1EHS2CW",
|
||||||
|
"disabled": false,
|
||||||
|
"domain": "fossbros-anonymous.io",
|
||||||
|
"updated_at": "2020-03-18T12:12:00.000Z",
|
||||||
|
"total_file_size": 21697,
|
||||||
|
"content_type": "image/png",
|
||||||
|
"uri": "http://fossbros-anonymous.io/emoji/01GD5KP5CQEE1R3X43Y1EHS2CW"
|
||||||
|
}`, dst.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *EmojiGetTestSuite) TestEmojiGetNotFound() {
|
func (suite *EmojiGetTestSuite) TestEmojiGetNotFound() {
|
||||||
|
|
|
@ -19,7 +19,9 @@
|
||||||
package followrequests_test
|
package followrequests_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"context"
|
"context"
|
||||||
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
@ -28,7 +30,6 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"github.com/stretchr/testify/assert"
|
|
||||||
"github.com/stretchr/testify/suite"
|
"github.com/stretchr/testify/suite"
|
||||||
"github.com/superseriousbusiness/gotosocial/internal/api/client/followrequests"
|
"github.com/superseriousbusiness/gotosocial/internal/api/client/followrequests"
|
||||||
"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
|
"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
|
||||||
|
@ -77,9 +78,25 @@ func (suite *AuthorizeTestSuite) TestAuthorize() {
|
||||||
|
|
||||||
// check the response
|
// check the response
|
||||||
b, err := ioutil.ReadAll(result.Body)
|
b, err := ioutil.ReadAll(result.Body)
|
||||||
assert.NoError(suite.T(), err)
|
suite.NoError(err)
|
||||||
|
dst := new(bytes.Buffer)
|
||||||
suite.Equal(`{"id":"01FHMQX3GAABWSM0S2VZEC2SWC","following":false,"showing_reblogs":false,"notifying":false,"followed_by":true,"blocking":false,"blocked_by":false,"muting":false,"muting_notifications":false,"requested":false,"domain_blocking":false,"endorsed":false,"note":""}`, string(b))
|
err = json.Indent(dst, b, "", " ")
|
||||||
|
suite.NoError(err)
|
||||||
|
suite.Equal(`{
|
||||||
|
"id": "01FHMQX3GAABWSM0S2VZEC2SWC",
|
||||||
|
"following": false,
|
||||||
|
"showing_reblogs": false,
|
||||||
|
"notifying": false,
|
||||||
|
"followed_by": true,
|
||||||
|
"blocking": false,
|
||||||
|
"blocked_by": false,
|
||||||
|
"muting": false,
|
||||||
|
"muting_notifications": false,
|
||||||
|
"requested": false,
|
||||||
|
"domain_blocking": false,
|
||||||
|
"endorsed": false,
|
||||||
|
"note": ""
|
||||||
|
}`, dst.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *AuthorizeTestSuite) TestAuthorizeNoFR() {
|
func (suite *AuthorizeTestSuite) TestAuthorizeNoFR() {
|
||||||
|
@ -105,7 +122,7 @@ func (suite *AuthorizeTestSuite) TestAuthorizeNoFR() {
|
||||||
|
|
||||||
// check the response
|
// check the response
|
||||||
b, err := ioutil.ReadAll(result.Body)
|
b, err := ioutil.ReadAll(result.Body)
|
||||||
assert.NoError(suite.T(), err)
|
suite.NoError(err)
|
||||||
|
|
||||||
suite.Equal(`{"error":"Not Found"}`, string(b))
|
suite.Equal(`{"error":"Not Found"}`, string(b))
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,9 @@
|
||||||
package followrequests_test
|
package followrequests_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"context"
|
"context"
|
||||||
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
@ -69,8 +71,32 @@ func (suite *GetTestSuite) TestGet() {
|
||||||
// check the response
|
// check the response
|
||||||
b, err := ioutil.ReadAll(result.Body)
|
b, err := ioutil.ReadAll(result.Body)
|
||||||
assert.NoError(suite.T(), err)
|
assert.NoError(suite.T(), err)
|
||||||
|
dst := new(bytes.Buffer)
|
||||||
suite.Equal(`[{"id":"01FHMQX3GAABWSM0S2VZEC2SWC","username":"Some_User","acct":"Some_User@example.org","display_name":"some user","locked":true,"bot":false,"created_at":"2020-08-10T12:13:28.000Z","note":"i'm a real son of a gun","url":"http://example.org/@Some_User","avatar":"","avatar_static":"","header":"http://localhost:8080/assets/default_header.png","header_static":"http://localhost:8080/assets/default_header.png","followers_count":0,"following_count":0,"statuses_count":0,"last_status_at":null,"emojis":[],"fields":[]}]`, string(b))
|
err = json.Indent(dst, b, "", " ")
|
||||||
|
suite.NoError(err)
|
||||||
|
suite.Equal(`[
|
||||||
|
{
|
||||||
|
"id": "01FHMQX3GAABWSM0S2VZEC2SWC",
|
||||||
|
"username": "Some_User",
|
||||||
|
"acct": "Some_User@example.org",
|
||||||
|
"display_name": "some user",
|
||||||
|
"locked": true,
|
||||||
|
"bot": false,
|
||||||
|
"created_at": "2020-08-10T12:13:28.000Z",
|
||||||
|
"note": "i'm a real son of a gun",
|
||||||
|
"url": "http://example.org/@Some_User",
|
||||||
|
"avatar": "",
|
||||||
|
"avatar_static": "",
|
||||||
|
"header": "http://localhost:8080/assets/default_header.png",
|
||||||
|
"header_static": "http://localhost:8080/assets/default_header.png",
|
||||||
|
"followers_count": 0,
|
||||||
|
"following_count": 0,
|
||||||
|
"statuses_count": 0,
|
||||||
|
"last_status_at": null,
|
||||||
|
"emojis": [],
|
||||||
|
"fields": []
|
||||||
|
}
|
||||||
|
]`, dst.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestGetTestSuite(t *testing.T) {
|
func TestGetTestSuite(t *testing.T) {
|
||||||
|
|
|
@ -19,7 +19,9 @@
|
||||||
package followrequests_test
|
package followrequests_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"context"
|
"context"
|
||||||
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
@ -28,7 +30,6 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"github.com/stretchr/testify/assert"
|
|
||||||
"github.com/stretchr/testify/suite"
|
"github.com/stretchr/testify/suite"
|
||||||
"github.com/superseriousbusiness/gotosocial/internal/api/client/followrequests"
|
"github.com/superseriousbusiness/gotosocial/internal/api/client/followrequests"
|
||||||
"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
|
"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
|
||||||
|
@ -77,9 +78,25 @@ func (suite *RejectTestSuite) TestReject() {
|
||||||
|
|
||||||
// check the response
|
// check the response
|
||||||
b, err := ioutil.ReadAll(result.Body)
|
b, err := ioutil.ReadAll(result.Body)
|
||||||
assert.NoError(suite.T(), err)
|
suite.NoError(err)
|
||||||
|
dst := new(bytes.Buffer)
|
||||||
suite.Equal(`{"id":"01FHMQX3GAABWSM0S2VZEC2SWC","following":false,"showing_reblogs":false,"notifying":false,"followed_by":false,"blocking":false,"blocked_by":false,"muting":false,"muting_notifications":false,"requested":false,"domain_blocking":false,"endorsed":false,"note":""}`, string(b))
|
err = json.Indent(dst, b, "", " ")
|
||||||
|
suite.NoError(err)
|
||||||
|
suite.Equal(`{
|
||||||
|
"id": "01FHMQX3GAABWSM0S2VZEC2SWC",
|
||||||
|
"following": false,
|
||||||
|
"showing_reblogs": false,
|
||||||
|
"notifying": false,
|
||||||
|
"followed_by": false,
|
||||||
|
"blocking": false,
|
||||||
|
"blocked_by": false,
|
||||||
|
"muting": false,
|
||||||
|
"muting_notifications": false,
|
||||||
|
"requested": false,
|
||||||
|
"domain_blocking": false,
|
||||||
|
"endorsed": false,
|
||||||
|
"note": ""
|
||||||
|
}`, dst.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestRejectTestSuite(t *testing.T) {
|
func TestRejectTestSuite(t *testing.T) {
|
||||||
|
|
|
@ -19,8 +19,9 @@
|
||||||
package instance_test
|
package instance_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"encoding/json"
|
||||||
"io"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/http/httptest"
|
"net/http/httptest"
|
||||||
|
@ -64,8 +65,87 @@ func (suite *InstancePatchTestSuite) TestInstancePatch1() {
|
||||||
|
|
||||||
b, err := io.ReadAll(result.Body)
|
b, err := io.ReadAll(result.Body)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
dst := new(bytes.Buffer)
|
||||||
suite.Equal(`{"uri":"http://localhost:8080","account_domain":"localhost:8080","title":"Example Instance","description":"\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e","short_description":"\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e","email":"someone@example.org","version":"0.0.0-testrig","registrations":true,"approval_required":true,"invites_enabled":false,"configuration":{"statuses":{"max_characters":5000,"max_media_attachments":6,"characters_reserved_per_url":25},"media_attachments":{"supported_mime_types":["image/jpeg","image/gif","image/png","image/webp","video/mp4"],"image_size_limit":10485760,"image_matrix_limit":16777216,"video_size_limit":41943040,"video_frame_rate_limit":60,"video_matrix_limit":16777216},"polls":{"max_options":6,"max_characters_per_option":50,"min_expiration":300,"max_expiration":2629746},"accounts":{"allow_custom_css":true},"emojis":{"emoji_size_limit":51200}},"urls":{"streaming_api":"wss://localhost:8080"},"stats":{"domain_count":2,"status_count":16,"user_count":4},"thumbnail":"http://localhost:8080/assets/logo.png","contact_account":{"id":"01F8MH17FWEB39HZJ76B6VXSKF","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"created_at":"2022-05-17T13:10:59.000Z","note":"","url":"http://localhost:8080/@admin","avatar":"","avatar_static":"","header":"http://localhost:8080/assets/default_header.png","header_static":"http://localhost:8080/assets/default_header.png","followers_count":1,"following_count":1,"statuses_count":4,"last_status_at":"2021-10-20T10:41:37.000Z","emojis":[],"fields":[],"enable_rss":true,"role":"admin"},"max_toot_chars":5000}`, string(b))
|
err = json.Indent(dst, b, "", " ")
|
||||||
|
suite.NoError(err)
|
||||||
|
suite.Equal(`{
|
||||||
|
"uri": "http://localhost:8080",
|
||||||
|
"account_domain": "localhost:8080",
|
||||||
|
"title": "Example Instance",
|
||||||
|
"description": "\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e",
|
||||||
|
"short_description": "\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e",
|
||||||
|
"email": "someone@example.org",
|
||||||
|
"version": "0.0.0-testrig",
|
||||||
|
"registrations": true,
|
||||||
|
"approval_required": true,
|
||||||
|
"invites_enabled": false,
|
||||||
|
"configuration": {
|
||||||
|
"statuses": {
|
||||||
|
"max_characters": 5000,
|
||||||
|
"max_media_attachments": 6,
|
||||||
|
"characters_reserved_per_url": 25
|
||||||
|
},
|
||||||
|
"media_attachments": {
|
||||||
|
"supported_mime_types": [
|
||||||
|
"image/jpeg",
|
||||||
|
"image/gif",
|
||||||
|
"image/png",
|
||||||
|
"image/webp",
|
||||||
|
"video/mp4"
|
||||||
|
],
|
||||||
|
"image_size_limit": 10485760,
|
||||||
|
"image_matrix_limit": 16777216,
|
||||||
|
"video_size_limit": 41943040,
|
||||||
|
"video_frame_rate_limit": 60,
|
||||||
|
"video_matrix_limit": 16777216
|
||||||
|
},
|
||||||
|
"polls": {
|
||||||
|
"max_options": 6,
|
||||||
|
"max_characters_per_option": 50,
|
||||||
|
"min_expiration": 300,
|
||||||
|
"max_expiration": 2629746
|
||||||
|
},
|
||||||
|
"accounts": {
|
||||||
|
"allow_custom_css": true
|
||||||
|
},
|
||||||
|
"emojis": {
|
||||||
|
"emoji_size_limit": 51200
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"urls": {
|
||||||
|
"streaming_api": "wss://localhost:8080"
|
||||||
|
},
|
||||||
|
"stats": {
|
||||||
|
"domain_count": 2,
|
||||||
|
"status_count": 16,
|
||||||
|
"user_count": 4
|
||||||
|
},
|
||||||
|
"thumbnail": "http://localhost:8080/assets/logo.png",
|
||||||
|
"contact_account": {
|
||||||
|
"id": "01F8MH17FWEB39HZJ76B6VXSKF",
|
||||||
|
"username": "admin",
|
||||||
|
"acct": "admin",
|
||||||
|
"display_name": "",
|
||||||
|
"locked": false,
|
||||||
|
"bot": false,
|
||||||
|
"created_at": "2022-05-17T13:10:59.000Z",
|
||||||
|
"note": "",
|
||||||
|
"url": "http://localhost:8080/@admin",
|
||||||
|
"avatar": "",
|
||||||
|
"avatar_static": "",
|
||||||
|
"header": "http://localhost:8080/assets/default_header.png",
|
||||||
|
"header_static": "http://localhost:8080/assets/default_header.png",
|
||||||
|
"followers_count": 1,
|
||||||
|
"following_count": 1,
|
||||||
|
"statuses_count": 4,
|
||||||
|
"last_status_at": "2021-10-20T10:41:37.000Z",
|
||||||
|
"emojis": [],
|
||||||
|
"fields": [],
|
||||||
|
"enable_rss": true,
|
||||||
|
"role": "admin"
|
||||||
|
},
|
||||||
|
"max_toot_chars": 5000
|
||||||
|
}`, dst.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InstancePatchTestSuite) TestInstancePatch2() {
|
func (suite *InstancePatchTestSuite) TestInstancePatch2() {
|
||||||
|
@ -94,8 +174,87 @@ func (suite *InstancePatchTestSuite) TestInstancePatch2() {
|
||||||
|
|
||||||
b, err := io.ReadAll(result.Body)
|
b, err := io.ReadAll(result.Body)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
dst := new(bytes.Buffer)
|
||||||
suite.Equal(`{"uri":"http://localhost:8080","account_domain":"localhost:8080","title":"Geoff's Instance","description":"\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e","short_description":"\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e","email":"admin@example.org","version":"0.0.0-testrig","registrations":true,"approval_required":true,"invites_enabled":false,"configuration":{"statuses":{"max_characters":5000,"max_media_attachments":6,"characters_reserved_per_url":25},"media_attachments":{"supported_mime_types":["image/jpeg","image/gif","image/png","image/webp","video/mp4"],"image_size_limit":10485760,"image_matrix_limit":16777216,"video_size_limit":41943040,"video_frame_rate_limit":60,"video_matrix_limit":16777216},"polls":{"max_options":6,"max_characters_per_option":50,"min_expiration":300,"max_expiration":2629746},"accounts":{"allow_custom_css":true},"emojis":{"emoji_size_limit":51200}},"urls":{"streaming_api":"wss://localhost:8080"},"stats":{"domain_count":2,"status_count":16,"user_count":4},"thumbnail":"http://localhost:8080/assets/logo.png","contact_account":{"id":"01F8MH17FWEB39HZJ76B6VXSKF","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"created_at":"2022-05-17T13:10:59.000Z","note":"","url":"http://localhost:8080/@admin","avatar":"","avatar_static":"","header":"http://localhost:8080/assets/default_header.png","header_static":"http://localhost:8080/assets/default_header.png","followers_count":1,"following_count":1,"statuses_count":4,"last_status_at":"2021-10-20T10:41:37.000Z","emojis":[],"fields":[],"enable_rss":true,"role":"admin"},"max_toot_chars":5000}`, string(b))
|
err = json.Indent(dst, b, "", " ")
|
||||||
|
suite.NoError(err)
|
||||||
|
suite.Equal(`{
|
||||||
|
"uri": "http://localhost:8080",
|
||||||
|
"account_domain": "localhost:8080",
|
||||||
|
"title": "Geoff's Instance",
|
||||||
|
"description": "\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e",
|
||||||
|
"short_description": "\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e",
|
||||||
|
"email": "admin@example.org",
|
||||||
|
"version": "0.0.0-testrig",
|
||||||
|
"registrations": true,
|
||||||
|
"approval_required": true,
|
||||||
|
"invites_enabled": false,
|
||||||
|
"configuration": {
|
||||||
|
"statuses": {
|
||||||
|
"max_characters": 5000,
|
||||||
|
"max_media_attachments": 6,
|
||||||
|
"characters_reserved_per_url": 25
|
||||||
|
},
|
||||||
|
"media_attachments": {
|
||||||
|
"supported_mime_types": [
|
||||||
|
"image/jpeg",
|
||||||
|
"image/gif",
|
||||||
|
"image/png",
|
||||||
|
"image/webp",
|
||||||
|
"video/mp4"
|
||||||
|
],
|
||||||
|
"image_size_limit": 10485760,
|
||||||
|
"image_matrix_limit": 16777216,
|
||||||
|
"video_size_limit": 41943040,
|
||||||
|
"video_frame_rate_limit": 60,
|
||||||
|
"video_matrix_limit": 16777216
|
||||||
|
},
|
||||||
|
"polls": {
|
||||||
|
"max_options": 6,
|
||||||
|
"max_characters_per_option": 50,
|
||||||
|
"min_expiration": 300,
|
||||||
|
"max_expiration": 2629746
|
||||||
|
},
|
||||||
|
"accounts": {
|
||||||
|
"allow_custom_css": true
|
||||||
|
},
|
||||||
|
"emojis": {
|
||||||
|
"emoji_size_limit": 51200
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"urls": {
|
||||||
|
"streaming_api": "wss://localhost:8080"
|
||||||
|
},
|
||||||
|
"stats": {
|
||||||
|
"domain_count": 2,
|
||||||
|
"status_count": 16,
|
||||||
|
"user_count": 4
|
||||||
|
},
|
||||||
|
"thumbnail": "http://localhost:8080/assets/logo.png",
|
||||||
|
"contact_account": {
|
||||||
|
"id": "01F8MH17FWEB39HZJ76B6VXSKF",
|
||||||
|
"username": "admin",
|
||||||
|
"acct": "admin",
|
||||||
|
"display_name": "",
|
||||||
|
"locked": false,
|
||||||
|
"bot": false,
|
||||||
|
"created_at": "2022-05-17T13:10:59.000Z",
|
||||||
|
"note": "",
|
||||||
|
"url": "http://localhost:8080/@admin",
|
||||||
|
"avatar": "",
|
||||||
|
"avatar_static": "",
|
||||||
|
"header": "http://localhost:8080/assets/default_header.png",
|
||||||
|
"header_static": "http://localhost:8080/assets/default_header.png",
|
||||||
|
"followers_count": 1,
|
||||||
|
"following_count": 1,
|
||||||
|
"statuses_count": 4,
|
||||||
|
"last_status_at": "2021-10-20T10:41:37.000Z",
|
||||||
|
"emojis": [],
|
||||||
|
"fields": [],
|
||||||
|
"enable_rss": true,
|
||||||
|
"role": "admin"
|
||||||
|
},
|
||||||
|
"max_toot_chars": 5000
|
||||||
|
}`, dst.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InstancePatchTestSuite) TestInstancePatch3() {
|
func (suite *InstancePatchTestSuite) TestInstancePatch3() {
|
||||||
|
@ -124,8 +283,87 @@ func (suite *InstancePatchTestSuite) TestInstancePatch3() {
|
||||||
|
|
||||||
b, err := io.ReadAll(result.Body)
|
b, err := io.ReadAll(result.Body)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
dst := new(bytes.Buffer)
|
||||||
suite.Equal(`{"uri":"http://localhost:8080","account_domain":"localhost:8080","title":"GoToSocial Testrig Instance","description":"\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e","short_description":"\u003cp\u003eThis is some html, which is \u003cem\u003eallowed\u003c/em\u003e in short descriptions.\u003c/p\u003e","email":"admin@example.org","version":"0.0.0-testrig","registrations":true,"approval_required":true,"invites_enabled":false,"configuration":{"statuses":{"max_characters":5000,"max_media_attachments":6,"characters_reserved_per_url":25},"media_attachments":{"supported_mime_types":["image/jpeg","image/gif","image/png","image/webp","video/mp4"],"image_size_limit":10485760,"image_matrix_limit":16777216,"video_size_limit":41943040,"video_frame_rate_limit":60,"video_matrix_limit":16777216},"polls":{"max_options":6,"max_characters_per_option":50,"min_expiration":300,"max_expiration":2629746},"accounts":{"allow_custom_css":true},"emojis":{"emoji_size_limit":51200}},"urls":{"streaming_api":"wss://localhost:8080"},"stats":{"domain_count":2,"status_count":16,"user_count":4},"thumbnail":"http://localhost:8080/assets/logo.png","contact_account":{"id":"01F8MH17FWEB39HZJ76B6VXSKF","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"created_at":"2022-05-17T13:10:59.000Z","note":"","url":"http://localhost:8080/@admin","avatar":"","avatar_static":"","header":"http://localhost:8080/assets/default_header.png","header_static":"http://localhost:8080/assets/default_header.png","followers_count":1,"following_count":1,"statuses_count":4,"last_status_at":"2021-10-20T10:41:37.000Z","emojis":[],"fields":[],"enable_rss":true,"role":"admin"},"max_toot_chars":5000}`, string(b))
|
err = json.Indent(dst, b, "", " ")
|
||||||
|
suite.NoError(err)
|
||||||
|
suite.Equal(`{
|
||||||
|
"uri": "http://localhost:8080",
|
||||||
|
"account_domain": "localhost:8080",
|
||||||
|
"title": "GoToSocial Testrig Instance",
|
||||||
|
"description": "\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e",
|
||||||
|
"short_description": "\u003cp\u003eThis is some html, which is \u003cem\u003eallowed\u003c/em\u003e in short descriptions.\u003c/p\u003e",
|
||||||
|
"email": "admin@example.org",
|
||||||
|
"version": "0.0.0-testrig",
|
||||||
|
"registrations": true,
|
||||||
|
"approval_required": true,
|
||||||
|
"invites_enabled": false,
|
||||||
|
"configuration": {
|
||||||
|
"statuses": {
|
||||||
|
"max_characters": 5000,
|
||||||
|
"max_media_attachments": 6,
|
||||||
|
"characters_reserved_per_url": 25
|
||||||
|
},
|
||||||
|
"media_attachments": {
|
||||||
|
"supported_mime_types": [
|
||||||
|
"image/jpeg",
|
||||||
|
"image/gif",
|
||||||
|
"image/png",
|
||||||
|
"image/webp",
|
||||||
|
"video/mp4"
|
||||||
|
],
|
||||||
|
"image_size_limit": 10485760,
|
||||||
|
"image_matrix_limit": 16777216,
|
||||||
|
"video_size_limit": 41943040,
|
||||||
|
"video_frame_rate_limit": 60,
|
||||||
|
"video_matrix_limit": 16777216
|
||||||
|
},
|
||||||
|
"polls": {
|
||||||
|
"max_options": 6,
|
||||||
|
"max_characters_per_option": 50,
|
||||||
|
"min_expiration": 300,
|
||||||
|
"max_expiration": 2629746
|
||||||
|
},
|
||||||
|
"accounts": {
|
||||||
|
"allow_custom_css": true
|
||||||
|
},
|
||||||
|
"emojis": {
|
||||||
|
"emoji_size_limit": 51200
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"urls": {
|
||||||
|
"streaming_api": "wss://localhost:8080"
|
||||||
|
},
|
||||||
|
"stats": {
|
||||||
|
"domain_count": 2,
|
||||||
|
"status_count": 16,
|
||||||
|
"user_count": 4
|
||||||
|
},
|
||||||
|
"thumbnail": "http://localhost:8080/assets/logo.png",
|
||||||
|
"contact_account": {
|
||||||
|
"id": "01F8MH17FWEB39HZJ76B6VXSKF",
|
||||||
|
"username": "admin",
|
||||||
|
"acct": "admin",
|
||||||
|
"display_name": "",
|
||||||
|
"locked": false,
|
||||||
|
"bot": false,
|
||||||
|
"created_at": "2022-05-17T13:10:59.000Z",
|
||||||
|
"note": "",
|
||||||
|
"url": "http://localhost:8080/@admin",
|
||||||
|
"avatar": "",
|
||||||
|
"avatar_static": "",
|
||||||
|
"header": "http://localhost:8080/assets/default_header.png",
|
||||||
|
"header_static": "http://localhost:8080/assets/default_header.png",
|
||||||
|
"followers_count": 1,
|
||||||
|
"following_count": 1,
|
||||||
|
"statuses_count": 4,
|
||||||
|
"last_status_at": "2021-10-20T10:41:37.000Z",
|
||||||
|
"emojis": [],
|
||||||
|
"fields": [],
|
||||||
|
"enable_rss": true,
|
||||||
|
"role": "admin"
|
||||||
|
},
|
||||||
|
"max_toot_chars": 5000
|
||||||
|
}`, dst.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InstancePatchTestSuite) TestInstancePatch4() {
|
func (suite *InstancePatchTestSuite) TestInstancePatch4() {
|
||||||
|
@ -215,8 +453,87 @@ func (suite *InstancePatchTestSuite) TestInstancePatch6() {
|
||||||
|
|
||||||
b, err := io.ReadAll(result.Body)
|
b, err := io.ReadAll(result.Body)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
dst := new(bytes.Buffer)
|
||||||
suite.Equal(`{"uri":"http://localhost:8080","account_domain":"localhost:8080","title":"GoToSocial Testrig Instance","description":"\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e","short_description":"\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e","email":"","version":"0.0.0-testrig","registrations":true,"approval_required":true,"invites_enabled":false,"configuration":{"statuses":{"max_characters":5000,"max_media_attachments":6,"characters_reserved_per_url":25},"media_attachments":{"supported_mime_types":["image/jpeg","image/gif","image/png","image/webp","video/mp4"],"image_size_limit":10485760,"image_matrix_limit":16777216,"video_size_limit":41943040,"video_frame_rate_limit":60,"video_matrix_limit":16777216},"polls":{"max_options":6,"max_characters_per_option":50,"min_expiration":300,"max_expiration":2629746},"accounts":{"allow_custom_css":true},"emojis":{"emoji_size_limit":51200}},"urls":{"streaming_api":"wss://localhost:8080"},"stats":{"domain_count":2,"status_count":16,"user_count":4},"thumbnail":"http://localhost:8080/assets/logo.png","contact_account":{"id":"01F8MH17FWEB39HZJ76B6VXSKF","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"created_at":"2022-05-17T13:10:59.000Z","note":"","url":"http://localhost:8080/@admin","avatar":"","avatar_static":"","header":"http://localhost:8080/assets/default_header.png","header_static":"http://localhost:8080/assets/default_header.png","followers_count":1,"following_count":1,"statuses_count":4,"last_status_at":"2021-10-20T10:41:37.000Z","emojis":[],"fields":[],"enable_rss":true,"role":"admin"},"max_toot_chars":5000}`, string(b))
|
err = json.Indent(dst, b, "", " ")
|
||||||
|
suite.NoError(err)
|
||||||
|
suite.Equal(`{
|
||||||
|
"uri": "http://localhost:8080",
|
||||||
|
"account_domain": "localhost:8080",
|
||||||
|
"title": "GoToSocial Testrig Instance",
|
||||||
|
"description": "\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e",
|
||||||
|
"short_description": "\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e",
|
||||||
|
"email": "",
|
||||||
|
"version": "0.0.0-testrig",
|
||||||
|
"registrations": true,
|
||||||
|
"approval_required": true,
|
||||||
|
"invites_enabled": false,
|
||||||
|
"configuration": {
|
||||||
|
"statuses": {
|
||||||
|
"max_characters": 5000,
|
||||||
|
"max_media_attachments": 6,
|
||||||
|
"characters_reserved_per_url": 25
|
||||||
|
},
|
||||||
|
"media_attachments": {
|
||||||
|
"supported_mime_types": [
|
||||||
|
"image/jpeg",
|
||||||
|
"image/gif",
|
||||||
|
"image/png",
|
||||||
|
"image/webp",
|
||||||
|
"video/mp4"
|
||||||
|
],
|
||||||
|
"image_size_limit": 10485760,
|
||||||
|
"image_matrix_limit": 16777216,
|
||||||
|
"video_size_limit": 41943040,
|
||||||
|
"video_frame_rate_limit": 60,
|
||||||
|
"video_matrix_limit": 16777216
|
||||||
|
},
|
||||||
|
"polls": {
|
||||||
|
"max_options": 6,
|
||||||
|
"max_characters_per_option": 50,
|
||||||
|
"min_expiration": 300,
|
||||||
|
"max_expiration": 2629746
|
||||||
|
},
|
||||||
|
"accounts": {
|
||||||
|
"allow_custom_css": true
|
||||||
|
},
|
||||||
|
"emojis": {
|
||||||
|
"emoji_size_limit": 51200
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"urls": {
|
||||||
|
"streaming_api": "wss://localhost:8080"
|
||||||
|
},
|
||||||
|
"stats": {
|
||||||
|
"domain_count": 2,
|
||||||
|
"status_count": 16,
|
||||||
|
"user_count": 4
|
||||||
|
},
|
||||||
|
"thumbnail": "http://localhost:8080/assets/logo.png",
|
||||||
|
"contact_account": {
|
||||||
|
"id": "01F8MH17FWEB39HZJ76B6VXSKF",
|
||||||
|
"username": "admin",
|
||||||
|
"acct": "admin",
|
||||||
|
"display_name": "",
|
||||||
|
"locked": false,
|
||||||
|
"bot": false,
|
||||||
|
"created_at": "2022-05-17T13:10:59.000Z",
|
||||||
|
"note": "",
|
||||||
|
"url": "http://localhost:8080/@admin",
|
||||||
|
"avatar": "",
|
||||||
|
"avatar_static": "",
|
||||||
|
"header": "http://localhost:8080/assets/default_header.png",
|
||||||
|
"header_static": "http://localhost:8080/assets/default_header.png",
|
||||||
|
"followers_count": 1,
|
||||||
|
"following_count": 1,
|
||||||
|
"statuses_count": 4,
|
||||||
|
"last_status_at": "2021-10-20T10:41:37.000Z",
|
||||||
|
"emojis": [],
|
||||||
|
"fields": [],
|
||||||
|
"enable_rss": true,
|
||||||
|
"role": "admin"
|
||||||
|
},
|
||||||
|
"max_toot_chars": 5000
|
||||||
|
}`, dst.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InstancePatchTestSuite) TestInstancePatch7() {
|
func (suite *InstancePatchTestSuite) TestInstancePatch7() {
|
||||||
|
@ -270,17 +587,97 @@ func (suite *InstancePatchTestSuite) TestInstancePatch8() {
|
||||||
result := recorder.Result()
|
result := recorder.Result()
|
||||||
defer result.Body.Close()
|
defer result.Body.Close()
|
||||||
|
|
||||||
b, err := io.ReadAll(result.Body)
|
|
||||||
suite.NoError(err)
|
|
||||||
|
|
||||||
instanceAccount, err := suite.db.GetInstanceAccount(context.Background(), "")
|
instanceAccount, err := suite.db.GetInstanceAccount(context.Background(), "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
suite.FailNow(err.Error())
|
suite.FailNow(err.Error())
|
||||||
}
|
}
|
||||||
suite.NotEmpty(instanceAccount.AvatarMediaAttachmentID)
|
suite.NotEmpty(instanceAccount.AvatarMediaAttachmentID)
|
||||||
|
|
||||||
expectedInstanceResponse := fmt.Sprintf(`{"uri":"http://localhost:8080","account_domain":"localhost:8080","title":"GoToSocial Testrig Instance","description":"\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e","short_description":"\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e","email":"admin@example.org","version":"0.0.0-testrig","registrations":true,"approval_required":true,"invites_enabled":false,"configuration":{"statuses":{"max_characters":5000,"max_media_attachments":6,"characters_reserved_per_url":25},"media_attachments":{"supported_mime_types":["image/jpeg","image/gif","image/png","image/webp","video/mp4"],"image_size_limit":10485760,"image_matrix_limit":16777216,"video_size_limit":41943040,"video_frame_rate_limit":60,"video_matrix_limit":16777216},"polls":{"max_options":6,"max_characters_per_option":50,"min_expiration":300,"max_expiration":2629746},"accounts":{"allow_custom_css":true},"emojis":{"emoji_size_limit":51200}},"urls":{"streaming_api":"wss://localhost:8080"},"stats":{"domain_count":2,"status_count":16,"user_count":4},"thumbnail":"http://localhost:8080/fileserver/%s/attachment/original/%s.gif","thumbnail_type":"image/gif","thumbnail_description":"A bouncing little green peglin.","contact_account":{"id":"01F8MH17FWEB39HZJ76B6VXSKF","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"created_at":"2022-05-17T13:10:59.000Z","note":"","url":"http://localhost:8080/@admin","avatar":"","avatar_static":"","header":"http://localhost:8080/assets/default_header.png","header_static":"http://localhost:8080/assets/default_header.png","followers_count":1,"following_count":1,"statuses_count":4,"last_status_at":"2021-10-20T10:41:37.000Z","emojis":[],"fields":[],"enable_rss":true,"role":"admin"},"max_toot_chars":5000}`, instanceAccount.ID, instanceAccount.AvatarMediaAttachmentID)
|
b, err := io.ReadAll(result.Body)
|
||||||
suite.Equal(expectedInstanceResponse, string(b))
|
suite.NoError(err)
|
||||||
|
dst := new(bytes.Buffer)
|
||||||
|
err = json.Indent(dst, b, "", " ")
|
||||||
|
suite.NoError(err)
|
||||||
|
suite.Equal(`{
|
||||||
|
"uri": "http://localhost:8080",
|
||||||
|
"account_domain": "localhost:8080",
|
||||||
|
"title": "GoToSocial Testrig Instance",
|
||||||
|
"description": "\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e",
|
||||||
|
"short_description": "\u003cp\u003eThis is the GoToSocial testrig. It doesn't federate or anything.\u003c/p\u003e\u003cp\u003eWhen the testrig is shut down, all data on it will be deleted.\u003c/p\u003e\u003cp\u003eDon't use this in production!\u003c/p\u003e",
|
||||||
|
"email": "admin@example.org",
|
||||||
|
"version": "0.0.0-testrig",
|
||||||
|
"registrations": true,
|
||||||
|
"approval_required": true,
|
||||||
|
"invites_enabled": false,
|
||||||
|
"configuration": {
|
||||||
|
"statuses": {
|
||||||
|
"max_characters": 5000,
|
||||||
|
"max_media_attachments": 6,
|
||||||
|
"characters_reserved_per_url": 25
|
||||||
|
},
|
||||||
|
"media_attachments": {
|
||||||
|
"supported_mime_types": [
|
||||||
|
"image/jpeg",
|
||||||
|
"image/gif",
|
||||||
|
"image/png",
|
||||||
|
"image/webp",
|
||||||
|
"video/mp4"
|
||||||
|
],
|
||||||
|
"image_size_limit": 10485760,
|
||||||
|
"image_matrix_limit": 16777216,
|
||||||
|
"video_size_limit": 41943040,
|
||||||
|
"video_frame_rate_limit": 60,
|
||||||
|
"video_matrix_limit": 16777216
|
||||||
|
},
|
||||||
|
"polls": {
|
||||||
|
"max_options": 6,
|
||||||
|
"max_characters_per_option": 50,
|
||||||
|
"min_expiration": 300,
|
||||||
|
"max_expiration": 2629746
|
||||||
|
},
|
||||||
|
"accounts": {
|
||||||
|
"allow_custom_css": true
|
||||||
|
},
|
||||||
|
"emojis": {
|
||||||
|
"emoji_size_limit": 51200
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"urls": {
|
||||||
|
"streaming_api": "wss://localhost:8080"
|
||||||
|
},
|
||||||
|
"stats": {
|
||||||
|
"domain_count": 2,
|
||||||
|
"status_count": 16,
|
||||||
|
"user_count": 4
|
||||||
|
},
|
||||||
|
"thumbnail": "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/attachment/original/`+instanceAccount.AvatarMediaAttachment.ID+`.gif",`+`
|
||||||
|
"thumbnail_type": "image/gif",
|
||||||
|
"thumbnail_description": "A bouncing little green peglin.",
|
||||||
|
"contact_account": {
|
||||||
|
"id": "01F8MH17FWEB39HZJ76B6VXSKF",
|
||||||
|
"username": "admin",
|
||||||
|
"acct": "admin",
|
||||||
|
"display_name": "",
|
||||||
|
"locked": false,
|
||||||
|
"bot": false,
|
||||||
|
"created_at": "2022-05-17T13:10:59.000Z",
|
||||||
|
"note": "",
|
||||||
|
"url": "http://localhost:8080/@admin",
|
||||||
|
"avatar": "",
|
||||||
|
"avatar_static": "",
|
||||||
|
"header": "http://localhost:8080/assets/default_header.png",
|
||||||
|
"header_static": "http://localhost:8080/assets/default_header.png",
|
||||||
|
"followers_count": 1,
|
||||||
|
"following_count": 1,
|
||||||
|
"statuses_count": 4,
|
||||||
|
"last_status_at": "2021-10-20T10:41:37.000Z",
|
||||||
|
"emojis": [],
|
||||||
|
"fields": [],
|
||||||
|
"enable_rss": true,
|
||||||
|
"role": "admin"
|
||||||
|
},
|
||||||
|
"max_toot_chars": 5000
|
||||||
|
}`, dst.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestInstancePatchTestSuite(t *testing.T) {
|
func TestInstancePatchTestSuite(t *testing.T) {
|
||||||
|
|
|
@ -19,7 +19,9 @@
|
||||||
package instance_test
|
package instance_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"context"
|
"context"
|
||||||
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
@ -56,8 +58,13 @@ func (suite *InstancePeersGetTestSuite) TestInstancePeersGetNoParams() {
|
||||||
|
|
||||||
b, err := io.ReadAll(result.Body)
|
b, err := io.ReadAll(result.Body)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
dst := new(bytes.Buffer)
|
||||||
suite.Equal(`["example.org","fossbros-anonymous.io"]`, string(b))
|
err = json.Indent(dst, b, "", " ")
|
||||||
|
suite.NoError(err)
|
||||||
|
suite.Equal(`[
|
||||||
|
"example.org",
|
||||||
|
"fossbros-anonymous.io"
|
||||||
|
]`, dst.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InstancePeersGetTestSuite) TestInstancePeersGetNoParamsUnauthorized() {
|
func (suite *InstancePeersGetTestSuite) TestInstancePeersGetNoParamsUnauthorized() {
|
||||||
|
@ -98,8 +105,13 @@ func (suite *InstancePeersGetTestSuite) TestInstancePeersGetNoParamsAuthorized()
|
||||||
|
|
||||||
b, err := io.ReadAll(result.Body)
|
b, err := io.ReadAll(result.Body)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
dst := new(bytes.Buffer)
|
||||||
suite.Equal(`["example.org","fossbros-anonymous.io"]`, string(b))
|
err = json.Indent(dst, b, "", " ")
|
||||||
|
suite.NoError(err)
|
||||||
|
suite.Equal(`[
|
||||||
|
"example.org",
|
||||||
|
"fossbros-anonymous.io"
|
||||||
|
]`, dst.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InstancePeersGetTestSuite) TestInstancePeersGetOnlySuspended() {
|
func (suite *InstancePeersGetTestSuite) TestInstancePeersGetOnlySuspended() {
|
||||||
|
@ -117,8 +129,16 @@ func (suite *InstancePeersGetTestSuite) TestInstancePeersGetOnlySuspended() {
|
||||||
|
|
||||||
b, err := io.ReadAll(result.Body)
|
b, err := io.ReadAll(result.Body)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
dst := new(bytes.Buffer)
|
||||||
suite.Equal(`[{"domain":"replyguys.com","suspended_at":"2020-05-13T13:29:12.000Z","public_comment":"reply-guying to tech posts"}]`, string(b))
|
err = json.Indent(dst, b, "", " ")
|
||||||
|
suite.NoError(err)
|
||||||
|
suite.Equal(`[
|
||||||
|
{
|
||||||
|
"domain": "replyguys.com",
|
||||||
|
"suspended_at": "2020-05-13T13:29:12.000Z",
|
||||||
|
"public_comment": "reply-guying to tech posts"
|
||||||
|
}
|
||||||
|
]`, dst.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InstancePeersGetTestSuite) TestInstancePeersGetOnlySuspendedUnauthorized() {
|
func (suite *InstancePeersGetTestSuite) TestInstancePeersGetOnlySuspendedUnauthorized() {
|
||||||
|
@ -159,8 +179,16 @@ func (suite *InstancePeersGetTestSuite) TestInstancePeersGetOnlySuspendedAuthori
|
||||||
|
|
||||||
b, err := io.ReadAll(result.Body)
|
b, err := io.ReadAll(result.Body)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
dst := new(bytes.Buffer)
|
||||||
suite.Equal(`[{"domain":"replyguys.com","suspended_at":"2020-05-13T13:29:12.000Z","public_comment":"reply-guying to tech posts"}]`, string(b))
|
err = json.Indent(dst, b, "", " ")
|
||||||
|
suite.NoError(err)
|
||||||
|
suite.Equal(`[
|
||||||
|
{
|
||||||
|
"domain": "replyguys.com",
|
||||||
|
"suspended_at": "2020-05-13T13:29:12.000Z",
|
||||||
|
"public_comment": "reply-guying to tech posts"
|
||||||
|
}
|
||||||
|
]`, dst.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InstancePeersGetTestSuite) TestInstancePeersGetAll() {
|
func (suite *InstancePeersGetTestSuite) TestInstancePeersGetAll() {
|
||||||
|
@ -178,8 +206,22 @@ func (suite *InstancePeersGetTestSuite) TestInstancePeersGetAll() {
|
||||||
|
|
||||||
b, err := io.ReadAll(result.Body)
|
b, err := io.ReadAll(result.Body)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
dst := new(bytes.Buffer)
|
||||||
suite.Equal(`[{"domain":"example.org"},{"domain":"fossbros-anonymous.io"},{"domain":"replyguys.com","suspended_at":"2020-05-13T13:29:12.000Z","public_comment":"reply-guying to tech posts"}]`, string(b))
|
err = json.Indent(dst, b, "", " ")
|
||||||
|
suite.NoError(err)
|
||||||
|
suite.Equal(`[
|
||||||
|
{
|
||||||
|
"domain": "example.org"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain": "fossbros-anonymous.io"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain": "replyguys.com",
|
||||||
|
"suspended_at": "2020-05-13T13:29:12.000Z",
|
||||||
|
"public_comment": "reply-guying to tech posts"
|
||||||
|
}
|
||||||
|
]`, dst.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InstancePeersGetTestSuite) TestInstancePeersGetAllWithObfuscated() {
|
func (suite *InstancePeersGetTestSuite) TestInstancePeersGetAllWithObfuscated() {
|
||||||
|
@ -208,8 +250,27 @@ func (suite *InstancePeersGetTestSuite) TestInstancePeersGetAllWithObfuscated()
|
||||||
|
|
||||||
b, err := io.ReadAll(result.Body)
|
b, err := io.ReadAll(result.Body)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
dst := new(bytes.Buffer)
|
||||||
suite.Equal(`[{"domain":"example.org"},{"domain":"fossbros-anonymous.io"},{"domain":"o*g.*u**.t**.*or*t.*r**ev**","suspended_at":"2021-06-09T10:34:55.000Z","public_comment":"just absolutely the worst, wowza"},{"domain":"replyguys.com","suspended_at":"2020-05-13T13:29:12.000Z","public_comment":"reply-guying to tech posts"}]`, string(b))
|
err = json.Indent(dst, b, "", " ")
|
||||||
|
suite.NoError(err)
|
||||||
|
suite.Equal(`[
|
||||||
|
{
|
||||||
|
"domain": "example.org"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain": "fossbros-anonymous.io"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain": "o*g.*u**.t**.*or*t.*r**ev**",
|
||||||
|
"suspended_at": "2021-06-09T10:34:55.000Z",
|
||||||
|
"public_comment": "just absolutely the worst, wowza"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"domain": "replyguys.com",
|
||||||
|
"suspended_at": "2020-05-13T13:29:12.000Z",
|
||||||
|
"public_comment": "reply-guying to tech posts"
|
||||||
|
}
|
||||||
|
]`, dst.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InstancePeersGetTestSuite) TestInstancePeersGetFunkyParams() {
|
func (suite *InstancePeersGetTestSuite) TestInstancePeersGetFunkyParams() {
|
||||||
|
|
|
@ -26,11 +26,11 @@ type Source struct {
|
||||||
// unlisted = Unlisted post
|
// unlisted = Unlisted post
|
||||||
// private = Followers-only post
|
// private = Followers-only post
|
||||||
// direct = Direct post
|
// direct = Direct post
|
||||||
Privacy Visibility `json:"privacy,omitempty"`
|
Privacy Visibility `json:"privacy"`
|
||||||
// Whether new statuses should be marked sensitive by default.
|
// Whether new statuses should be marked sensitive by default.
|
||||||
Sensitive bool `json:"sensitive,omitempty"`
|
Sensitive bool `json:"sensitive"`
|
||||||
// The default posting language for new statuses.
|
// The default posting language for new statuses.
|
||||||
Language string `json:"language,omitempty"`
|
Language string `json:"language"`
|
||||||
// The default posting format for new statuses.
|
// The default posting format for new statuses.
|
||||||
StatusFormat string `json:"status_format"`
|
StatusFormat string `json:"status_format"`
|
||||||
// Profile bio.
|
// Profile bio.
|
||||||
|
@ -38,5 +38,5 @@ type Source struct {
|
||||||
// Metadata about the account.
|
// Metadata about the account.
|
||||||
Fields []Field `json:"fields"`
|
Fields []Field `json:"fields"`
|
||||||
// The number of pending follow requests.
|
// The number of pending follow requests.
|
||||||
FollowRequestsCount int `json:"follow_requests_count,omitempty"`
|
FollowRequestsCount int `json:"follow_requests_count"`
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,14 +19,15 @@
|
||||||
package webfinger_test
|
package webfinger_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"context"
|
"context"
|
||||||
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net/http"
|
"net/http"
|
||||||
"net/http/httptest"
|
"net/http/httptest"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
|
||||||
"github.com/stretchr/testify/suite"
|
"github.com/stretchr/testify/suite"
|
||||||
"github.com/superseriousbusiness/gotosocial/internal/api/wellknown/webfinger"
|
"github.com/superseriousbusiness/gotosocial/internal/api/wellknown/webfinger"
|
||||||
"github.com/superseriousbusiness/gotosocial/internal/concurrency"
|
"github.com/superseriousbusiness/gotosocial/internal/concurrency"
|
||||||
|
@ -61,9 +62,29 @@ func (suite *WebfingerGetTestSuite) TestFingerUser() {
|
||||||
result := recorder.Result()
|
result := recorder.Result()
|
||||||
defer result.Body.Close()
|
defer result.Body.Close()
|
||||||
b, err := ioutil.ReadAll(result.Body)
|
b, err := ioutil.ReadAll(result.Body)
|
||||||
assert.NoError(suite.T(), err)
|
suite.NoError(err)
|
||||||
|
dst := new(bytes.Buffer)
|
||||||
suite.Equal(`{"subject":"acct:the_mighty_zork@localhost:8080","aliases":["http://localhost:8080/users/the_mighty_zork","http://localhost:8080/@the_mighty_zork"],"links":[{"rel":"http://webfinger.net/rel/profile-page","type":"text/html","href":"http://localhost:8080/@the_mighty_zork"},{"rel":"self","type":"application/activity+json","href":"http://localhost:8080/users/the_mighty_zork"}]}`, string(b))
|
err = json.Indent(dst, b, "", " ")
|
||||||
|
suite.NoError(err)
|
||||||
|
suite.Equal(`{
|
||||||
|
"subject": "acct:the_mighty_zork@localhost:8080",
|
||||||
|
"aliases": [
|
||||||
|
"http://localhost:8080/users/the_mighty_zork",
|
||||||
|
"http://localhost:8080/@the_mighty_zork"
|
||||||
|
],
|
||||||
|
"links": [
|
||||||
|
{
|
||||||
|
"rel": "http://webfinger.net/rel/profile-page",
|
||||||
|
"type": "text/html",
|
||||||
|
"href": "http://localhost:8080/@the_mighty_zork"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"rel": "self",
|
||||||
|
"type": "application/activity+json",
|
||||||
|
"href": "http://localhost:8080/users/the_mighty_zork"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}`, dst.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *WebfingerGetTestSuite) TestFingerUserWithDifferentAccountDomainByHost() {
|
func (suite *WebfingerGetTestSuite) TestFingerUserWithDifferentAccountDomainByHost() {
|
||||||
|
@ -98,9 +119,29 @@ func (suite *WebfingerGetTestSuite) TestFingerUserWithDifferentAccountDomainByHo
|
||||||
result := recorder.Result()
|
result := recorder.Result()
|
||||||
defer result.Body.Close()
|
defer result.Body.Close()
|
||||||
b, err := ioutil.ReadAll(result.Body)
|
b, err := ioutil.ReadAll(result.Body)
|
||||||
assert.NoError(suite.T(), err)
|
suite.NoError(err)
|
||||||
|
dst := new(bytes.Buffer)
|
||||||
suite.Equal(`{"subject":"acct:aaaaa@example.org","aliases":["http://gts.example.org/users/aaaaa","http://gts.example.org/@aaaaa"],"links":[{"rel":"http://webfinger.net/rel/profile-page","type":"text/html","href":"http://gts.example.org/@aaaaa"},{"rel":"self","type":"application/activity+json","href":"http://gts.example.org/users/aaaaa"}]}`, string(b))
|
err = json.Indent(dst, b, "", " ")
|
||||||
|
suite.NoError(err)
|
||||||
|
suite.Equal(`{
|
||||||
|
"subject": "acct:aaaaa@example.org",
|
||||||
|
"aliases": [
|
||||||
|
"http://gts.example.org/users/aaaaa",
|
||||||
|
"http://gts.example.org/@aaaaa"
|
||||||
|
],
|
||||||
|
"links": [
|
||||||
|
{
|
||||||
|
"rel": "http://webfinger.net/rel/profile-page",
|
||||||
|
"type": "text/html",
|
||||||
|
"href": "http://gts.example.org/@aaaaa"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"rel": "self",
|
||||||
|
"type": "application/activity+json",
|
||||||
|
"href": "http://gts.example.org/users/aaaaa"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}`, dst.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *WebfingerGetTestSuite) TestFingerUserWithDifferentAccountDomainByAccountDomain() {
|
func (suite *WebfingerGetTestSuite) TestFingerUserWithDifferentAccountDomainByAccountDomain() {
|
||||||
|
@ -135,9 +176,29 @@ func (suite *WebfingerGetTestSuite) TestFingerUserWithDifferentAccountDomainByAc
|
||||||
result := recorder.Result()
|
result := recorder.Result()
|
||||||
defer result.Body.Close()
|
defer result.Body.Close()
|
||||||
b, err := ioutil.ReadAll(result.Body)
|
b, err := ioutil.ReadAll(result.Body)
|
||||||
assert.NoError(suite.T(), err)
|
suite.NoError(err)
|
||||||
|
dst := new(bytes.Buffer)
|
||||||
suite.Equal(`{"subject":"acct:aaaaa@example.org","aliases":["http://gts.example.org/users/aaaaa","http://gts.example.org/@aaaaa"],"links":[{"rel":"http://webfinger.net/rel/profile-page","type":"text/html","href":"http://gts.example.org/@aaaaa"},{"rel":"self","type":"application/activity+json","href":"http://gts.example.org/users/aaaaa"}]}`, string(b))
|
err = json.Indent(dst, b, "", " ")
|
||||||
|
suite.NoError(err)
|
||||||
|
suite.Equal(`{
|
||||||
|
"subject": "acct:aaaaa@example.org",
|
||||||
|
"aliases": [
|
||||||
|
"http://gts.example.org/users/aaaaa",
|
||||||
|
"http://gts.example.org/@aaaaa"
|
||||||
|
],
|
||||||
|
"links": [
|
||||||
|
{
|
||||||
|
"rel": "http://webfinger.net/rel/profile-page",
|
||||||
|
"type": "text/html",
|
||||||
|
"href": "http://gts.example.org/@aaaaa"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"rel": "self",
|
||||||
|
"type": "application/activity+json",
|
||||||
|
"href": "http://gts.example.org/users/aaaaa"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}`, dst.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *WebfingerGetTestSuite) TestFingerUserWithoutAcct() {
|
func (suite *WebfingerGetTestSuite) TestFingerUserWithoutAcct() {
|
||||||
|
@ -161,9 +222,29 @@ func (suite *WebfingerGetTestSuite) TestFingerUserWithoutAcct() {
|
||||||
result := recorder.Result()
|
result := recorder.Result()
|
||||||
defer result.Body.Close()
|
defer result.Body.Close()
|
||||||
b, err := ioutil.ReadAll(result.Body)
|
b, err := ioutil.ReadAll(result.Body)
|
||||||
assert.NoError(suite.T(), err)
|
suite.NoError(err)
|
||||||
|
dst := new(bytes.Buffer)
|
||||||
suite.Equal(`{"subject":"acct:the_mighty_zork@localhost:8080","aliases":["http://localhost:8080/users/the_mighty_zork","http://localhost:8080/@the_mighty_zork"],"links":[{"rel":"http://webfinger.net/rel/profile-page","type":"text/html","href":"http://localhost:8080/@the_mighty_zork"},{"rel":"self","type":"application/activity+json","href":"http://localhost:8080/users/the_mighty_zork"}]}`, string(b))
|
err = json.Indent(dst, b, "", " ")
|
||||||
|
suite.NoError(err)
|
||||||
|
suite.Equal(`{
|
||||||
|
"subject": "acct:the_mighty_zork@localhost:8080",
|
||||||
|
"aliases": [
|
||||||
|
"http://localhost:8080/users/the_mighty_zork",
|
||||||
|
"http://localhost:8080/@the_mighty_zork"
|
||||||
|
],
|
||||||
|
"links": [
|
||||||
|
{
|
||||||
|
"rel": "http://webfinger.net/rel/profile-page",
|
||||||
|
"type": "text/html",
|
||||||
|
"href": "http://localhost:8080/@the_mighty_zork"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"rel": "self",
|
||||||
|
"type": "application/activity+json",
|
||||||
|
"href": "http://localhost:8080/users/the_mighty_zork"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}`, dst.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestWebfingerGetTestSuite(t *testing.T) {
|
func TestWebfingerGetTestSuite(t *testing.T) {
|
||||||
|
|
|
@ -19,7 +19,9 @@
|
||||||
package federation_test
|
package federation_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"context"
|
"context"
|
||||||
|
"encoding/json"
|
||||||
"net/url"
|
"net/url"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
@ -130,7 +132,27 @@ func (suite *FederatingActorTestSuite) TestSendRemoteFollower() {
|
||||||
suite.FailNow("timed out waiting for message")
|
suite.FailNow("timed out waiting for message")
|
||||||
}
|
}
|
||||||
|
|
||||||
suite.Equal(`{"@context":"https://www.w3.org/ns/activitystreams","actor":"http://localhost:8080/users/the_mighty_zork","id":"http://localhost:8080/whatever_some_create","object":{"attributedTo":"http://localhost:8080/users/the_mighty_zork","content":"boobies","id":"http://localhost:8080/users/the_mighty_zork/statuses/01G1TR6BADACCZWQMNF9X21TV5","published":"2022-06-02T12:22:21+02:00","tag":[],"to":"http://localhost:8080/users/the_mighty_zork/followers","type":"Note","url":"http://localhost:8080/@the_mighty_zork/statuses/01G1TR6BADACCZWQMNF9X21TV5"},"published":"2022-06-02T12:22:21+02:00","to":"http://localhost:8080/users/the_mighty_zork/followers","type":"Create"}`, string(sent[0]))
|
dst := new(bytes.Buffer)
|
||||||
|
err = json.Indent(dst, sent[0], "", " ")
|
||||||
|
suite.NoError(err)
|
||||||
|
suite.Equal(`{
|
||||||
|
"@context": "https://www.w3.org/ns/activitystreams",
|
||||||
|
"actor": "http://localhost:8080/users/the_mighty_zork",
|
||||||
|
"id": "http://localhost:8080/whatever_some_create",
|
||||||
|
"object": {
|
||||||
|
"attributedTo": "http://localhost:8080/users/the_mighty_zork",
|
||||||
|
"content": "boobies",
|
||||||
|
"id": "http://localhost:8080/users/the_mighty_zork/statuses/01G1TR6BADACCZWQMNF9X21TV5",
|
||||||
|
"published": "2022-06-02T12:22:21+02:00",
|
||||||
|
"tag": [],
|
||||||
|
"to": "http://localhost:8080/users/the_mighty_zork/followers",
|
||||||
|
"type": "Note",
|
||||||
|
"url": "http://localhost:8080/@the_mighty_zork/statuses/01G1TR6BADACCZWQMNF9X21TV5"
|
||||||
|
},
|
||||||
|
"published": "2022-06-02T12:22:21+02:00",
|
||||||
|
"to": "http://localhost:8080/users/the_mighty_zork/followers",
|
||||||
|
"type": "Create"
|
||||||
|
}`, dst.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestFederatingActorTestSuite(t *testing.T) {
|
func TestFederatingActorTestSuite(t *testing.T) {
|
||||||
|
|
|
@ -41,11 +41,15 @@ func (suite *FollowersTestSuite) TestGetFollowers() {
|
||||||
fi, err := streams.Serialize(f)
|
fi, err := streams.Serialize(f)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
fJson, err := json.Marshal(fi)
|
fJson, err := json.MarshalIndent(fi, "", " ")
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
// zork follows local_account_2 so this should be reflected in the response
|
// zork follows local_account_2 so this should be reflected in the response
|
||||||
suite.Equal(`{"@context":"https://www.w3.org/ns/activitystreams","items":"http://localhost:8080/users/the_mighty_zork","type":"Collection"}`, string(fJson))
|
suite.Equal(`{
|
||||||
|
"@context": "https://www.w3.org/ns/activitystreams",
|
||||||
|
"items": "http://localhost:8080/users/the_mighty_zork",
|
||||||
|
"type": "Collection"
|
||||||
|
}`, string(fJson))
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestFollowersTestSuite(t *testing.T) {
|
func TestFollowersTestSuite(t *testing.T) {
|
||||||
|
|
|
@ -41,11 +41,18 @@ func (suite *FollowingTestSuite) TestGetFollowing() {
|
||||||
fi, err := streams.Serialize(f)
|
fi, err := streams.Serialize(f)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
fJson, err := json.Marshal(fi)
|
fJson, err := json.MarshalIndent(fi, "", " ")
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
// zork follows admin account and local_account_1
|
// zork follows admin account and local_account_1
|
||||||
suite.Equal(`{"@context":"https://www.w3.org/ns/activitystreams","items":["http://localhost:8080/users/admin","http://localhost:8080/users/1happyturtle"],"type":"Collection"}`, string(fJson))
|
suite.Equal(`{
|
||||||
|
"@context": "https://www.w3.org/ns/activitystreams",
|
||||||
|
"items": [
|
||||||
|
"http://localhost:8080/users/admin",
|
||||||
|
"http://localhost:8080/users/1happyturtle"
|
||||||
|
],
|
||||||
|
"type": "Collection"
|
||||||
|
}`, string(fJson))
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestFollowingTestSuite(t *testing.T) {
|
func TestFollowingTestSuite(t *testing.T) {
|
||||||
|
|
|
@ -19,7 +19,9 @@
|
||||||
package streaming_test
|
package streaming_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"bytes"
|
||||||
"context"
|
"context"
|
||||||
|
"encoding/json"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/stretchr/testify/suite"
|
"github.com/stretchr/testify/suite"
|
||||||
|
@ -52,7 +54,35 @@ func (suite *NotificationTestSuite) TestStreamNotification() {
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
msg := <-openStream.Messages
|
msg := <-openStream.Messages
|
||||||
suite.Equal(`{"id":"01FH57SJCMDWQGEAJ0X08CE3WV","type":"follow","created_at":"2021-10-04T08:52:36.000Z","account":{"id":"01F8MH5ZK5VRH73AKHQM6Y9VNX","username":"foss_satan","acct":"foss_satan@fossbros-anonymous.io","display_name":"big gerald","locked":false,"bot":false,"created_at":"2021-09-26T10:52:36.000Z","note":"i post about like, i dunno, stuff, or whatever!!!!","url":"http://fossbros-anonymous.io/@foss_satan","avatar":"","avatar_static":"","header":"http://localhost:8080/assets/default_header.png","header_static":"http://localhost:8080/assets/default_header.png","followers_count":0,"following_count":0,"statuses_count":1,"last_status_at":"2021-09-20T10:40:37.000Z","emojis":[],"fields":[]}}`, msg.Payload)
|
dst := new(bytes.Buffer)
|
||||||
|
err = json.Indent(dst, []byte(msg.Payload), "", " ")
|
||||||
|
suite.NoError(err)
|
||||||
|
suite.Equal(`{
|
||||||
|
"id": "01FH57SJCMDWQGEAJ0X08CE3WV",
|
||||||
|
"type": "follow",
|
||||||
|
"created_at": "2021-10-04T08:52:36.000Z",
|
||||||
|
"account": {
|
||||||
|
"id": "01F8MH5ZK5VRH73AKHQM6Y9VNX",
|
||||||
|
"username": "foss_satan",
|
||||||
|
"acct": "foss_satan@fossbros-anonymous.io",
|
||||||
|
"display_name": "big gerald",
|
||||||
|
"locked": false,
|
||||||
|
"bot": false,
|
||||||
|
"created_at": "2021-09-26T10:52:36.000Z",
|
||||||
|
"note": "i post about like, i dunno, stuff, or whatever!!!!",
|
||||||
|
"url": "http://fossbros-anonymous.io/@foss_satan",
|
||||||
|
"avatar": "",
|
||||||
|
"avatar_static": "",
|
||||||
|
"header": "http://localhost:8080/assets/default_header.png",
|
||||||
|
"header_static": "http://localhost:8080/assets/default_header.png",
|
||||||
|
"followers_count": 0,
|
||||||
|
"following_count": 0,
|
||||||
|
"statuses_count": 1,
|
||||||
|
"last_status_at": "2021-09-20T10:40:37.000Z",
|
||||||
|
"emojis": [],
|
||||||
|
"fields": []
|
||||||
|
}
|
||||||
|
}`, dst.String())
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestNotificationTestSuite(t *testing.T) {
|
func TestNotificationTestSuite(t *testing.T) {
|
||||||
|
|
|
@ -44,14 +44,43 @@ func (suite *InternalToASTestSuite) TestAccountToAS() {
|
||||||
ser, err := streams.Serialize(asPerson)
|
ser, err := streams.Serialize(asPerson)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
bytes, err := json.Marshal(ser)
|
bytes, err := json.MarshalIndent(ser, "", " ")
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
// trim off everything up to 'discoverable';
|
// trim off everything up to 'discoverable';
|
||||||
// this is necessary because the order of multiple 'context' entries is not determinate
|
// this is necessary because the order of multiple 'context' entries is not determinate
|
||||||
trimmed := strings.Split(string(bytes), "\"discoverable\"")[1]
|
trimmed := strings.Split(string(bytes), "\"discoverable\"")[1]
|
||||||
|
|
||||||
suite.Equal(`:true,"featured":"http://localhost:8080/users/the_mighty_zork/collections/featured","followers":"http://localhost:8080/users/the_mighty_zork/followers","following":"http://localhost:8080/users/the_mighty_zork/following","icon":{"mediaType":"image/jpeg","type":"Image","url":"http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/avatar/original/01F8MH58A357CV5K7R7TJMSH6S.jpg"},"id":"http://localhost:8080/users/the_mighty_zork","image":{"mediaType":"image/jpeg","type":"Image","url":"http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/header/original/01PFPMWK2FF0D9WMHEJHR07C3Q.jpg"},"inbox":"http://localhost:8080/users/the_mighty_zork/inbox","manuallyApprovesFollowers":false,"name":"original zork (he/they)","outbox":"http://localhost:8080/users/the_mighty_zork/outbox","preferredUsername":"the_mighty_zork","publicKey":{"id":"http://localhost:8080/users/the_mighty_zork/main-key","owner":"http://localhost:8080/users/the_mighty_zork","publicKeyPem":"-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwXTcOAvM1Jiw5Ffpk0qn\nr0cwbNvFe/5zQ+Tp7tumK/ZnT37o7X0FUEXrxNi+dkhmeJ0gsaiN+JQGNUewvpSk\nPIAXKvi908aSfCGjs7bGlJCJCuDuL5d6m7hZnP9rt9fJc70GElPpG0jc9fXwlz7T\nlsPb2ecatmG05Y4jPwdC+oN4MNCv9yQzEvCVMzl76EJaM602kIHC1CISn0rDFmYd\n9rSN7XPlNJw1F6PbpJ/BWQ+pXHKw3OEwNTETAUNYiVGnZU+B7a7bZC9f6/aPbJuV\nt8Qmg+UnDvW1Y8gmfHnxaWG2f5TDBvCHmcYtucIZPLQD4trAozC4ryqlmCWQNKbt\n0wIDAQAB\n-----END PUBLIC KEY-----\n"},"summary":"\u003cp\u003ehey yo this is my profile!\u003c/p\u003e","tag":[],"type":"Person","url":"http://localhost:8080/@the_mighty_zork"}`, trimmed)
|
suite.Equal(`: true,
|
||||||
|
"featured": "http://localhost:8080/users/the_mighty_zork/collections/featured",
|
||||||
|
"followers": "http://localhost:8080/users/the_mighty_zork/followers",
|
||||||
|
"following": "http://localhost:8080/users/the_mighty_zork/following",
|
||||||
|
"icon": {
|
||||||
|
"mediaType": "image/jpeg",
|
||||||
|
"type": "Image",
|
||||||
|
"url": "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/avatar/original/01F8MH58A357CV5K7R7TJMSH6S.jpg"
|
||||||
|
},
|
||||||
|
"id": "http://localhost:8080/users/the_mighty_zork",
|
||||||
|
"image": {
|
||||||
|
"mediaType": "image/jpeg",
|
||||||
|
"type": "Image",
|
||||||
|
"url": "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/header/original/01PFPMWK2FF0D9WMHEJHR07C3Q.jpg"
|
||||||
|
},
|
||||||
|
"inbox": "http://localhost:8080/users/the_mighty_zork/inbox",
|
||||||
|
"manuallyApprovesFollowers": false,
|
||||||
|
"name": "original zork (he/they)",
|
||||||
|
"outbox": "http://localhost:8080/users/the_mighty_zork/outbox",
|
||||||
|
"preferredUsername": "the_mighty_zork",
|
||||||
|
"publicKey": {
|
||||||
|
"id": "http://localhost:8080/users/the_mighty_zork/main-key",
|
||||||
|
"owner": "http://localhost:8080/users/the_mighty_zork",
|
||||||
|
"publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwXTcOAvM1Jiw5Ffpk0qn\nr0cwbNvFe/5zQ+Tp7tumK/ZnT37o7X0FUEXrxNi+dkhmeJ0gsaiN+JQGNUewvpSk\nPIAXKvi908aSfCGjs7bGlJCJCuDuL5d6m7hZnP9rt9fJc70GElPpG0jc9fXwlz7T\nlsPb2ecatmG05Y4jPwdC+oN4MNCv9yQzEvCVMzl76EJaM602kIHC1CISn0rDFmYd\n9rSN7XPlNJw1F6PbpJ/BWQ+pXHKw3OEwNTETAUNYiVGnZU+B7a7bZC9f6/aPbJuV\nt8Qmg+UnDvW1Y8gmfHnxaWG2f5TDBvCHmcYtucIZPLQD4trAozC4ryqlmCWQNKbt\n0wIDAQAB\n-----END PUBLIC KEY-----\n"
|
||||||
|
},
|
||||||
|
"summary": "\u003cp\u003ehey yo this is my profile!\u003c/p\u003e",
|
||||||
|
"tag": [],
|
||||||
|
"type": "Person",
|
||||||
|
"url": "http://localhost:8080/@the_mighty_zork"
|
||||||
|
}`, trimmed)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InternalToASTestSuite) TestAccountToASWithEmoji() {
|
func (suite *InternalToASTestSuite) TestAccountToASWithEmoji() {
|
||||||
|
@ -65,14 +94,53 @@ func (suite *InternalToASTestSuite) TestAccountToASWithEmoji() {
|
||||||
ser, err := streams.Serialize(asPerson)
|
ser, err := streams.Serialize(asPerson)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
bytes, err := json.Marshal(ser)
|
bytes, err := json.MarshalIndent(ser, "", " ")
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
// trim off everything up to 'discoverable';
|
// trim off everything up to 'discoverable';
|
||||||
// this is necessary because the order of multiple 'context' entries is not determinate
|
// this is necessary because the order of multiple 'context' entries is not determinate
|
||||||
trimmed := strings.Split(string(bytes), "\"discoverable\"")[1]
|
trimmed := strings.Split(string(bytes), "\"discoverable\"")[1]
|
||||||
|
|
||||||
suite.Equal(`:true,"featured":"http://localhost:8080/users/the_mighty_zork/collections/featured","followers":"http://localhost:8080/users/the_mighty_zork/followers","following":"http://localhost:8080/users/the_mighty_zork/following","icon":{"mediaType":"image/jpeg","type":"Image","url":"http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/avatar/original/01F8MH58A357CV5K7R7TJMSH6S.jpg"},"id":"http://localhost:8080/users/the_mighty_zork","image":{"mediaType":"image/jpeg","type":"Image","url":"http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/header/original/01PFPMWK2FF0D9WMHEJHR07C3Q.jpg"},"inbox":"http://localhost:8080/users/the_mighty_zork/inbox","manuallyApprovesFollowers":false,"name":"original zork (he/they)","outbox":"http://localhost:8080/users/the_mighty_zork/outbox","preferredUsername":"the_mighty_zork","publicKey":{"id":"http://localhost:8080/users/the_mighty_zork/main-key","owner":"http://localhost:8080/users/the_mighty_zork","publicKeyPem":"-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwXTcOAvM1Jiw5Ffpk0qn\nr0cwbNvFe/5zQ+Tp7tumK/ZnT37o7X0FUEXrxNi+dkhmeJ0gsaiN+JQGNUewvpSk\nPIAXKvi908aSfCGjs7bGlJCJCuDuL5d6m7hZnP9rt9fJc70GElPpG0jc9fXwlz7T\nlsPb2ecatmG05Y4jPwdC+oN4MNCv9yQzEvCVMzl76EJaM602kIHC1CISn0rDFmYd\n9rSN7XPlNJw1F6PbpJ/BWQ+pXHKw3OEwNTETAUNYiVGnZU+B7a7bZC9f6/aPbJuV\nt8Qmg+UnDvW1Y8gmfHnxaWG2f5TDBvCHmcYtucIZPLQD4trAozC4ryqlmCWQNKbt\n0wIDAQAB\n-----END PUBLIC KEY-----\n"},"summary":"\u003cp\u003ehey yo this is my profile!\u003c/p\u003e","tag":{"icon":{"mediaType":"image/png","type":"Image","url":"http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01F8MH9H8E4VG3KDYJR9EGPXCQ.png"},"id":"http://localhost:8080/emoji/01F8MH9H8E4VG3KDYJR9EGPXCQ","name":":rainbow:","type":"Emoji","updated":"2021-09-20T12:40:37+02:00"},"type":"Person","url":"http://localhost:8080/@the_mighty_zork"}`, trimmed)
|
suite.Equal(`: true,
|
||||||
|
"featured": "http://localhost:8080/users/the_mighty_zork/collections/featured",
|
||||||
|
"followers": "http://localhost:8080/users/the_mighty_zork/followers",
|
||||||
|
"following": "http://localhost:8080/users/the_mighty_zork/following",
|
||||||
|
"icon": {
|
||||||
|
"mediaType": "image/jpeg",
|
||||||
|
"type": "Image",
|
||||||
|
"url": "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/avatar/original/01F8MH58A357CV5K7R7TJMSH6S.jpg"
|
||||||
|
},
|
||||||
|
"id": "http://localhost:8080/users/the_mighty_zork",
|
||||||
|
"image": {
|
||||||
|
"mediaType": "image/jpeg",
|
||||||
|
"type": "Image",
|
||||||
|
"url": "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/header/original/01PFPMWK2FF0D9WMHEJHR07C3Q.jpg"
|
||||||
|
},
|
||||||
|
"inbox": "http://localhost:8080/users/the_mighty_zork/inbox",
|
||||||
|
"manuallyApprovesFollowers": false,
|
||||||
|
"name": "original zork (he/they)",
|
||||||
|
"outbox": "http://localhost:8080/users/the_mighty_zork/outbox",
|
||||||
|
"preferredUsername": "the_mighty_zork",
|
||||||
|
"publicKey": {
|
||||||
|
"id": "http://localhost:8080/users/the_mighty_zork/main-key",
|
||||||
|
"owner": "http://localhost:8080/users/the_mighty_zork",
|
||||||
|
"publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwXTcOAvM1Jiw5Ffpk0qn\nr0cwbNvFe/5zQ+Tp7tumK/ZnT37o7X0FUEXrxNi+dkhmeJ0gsaiN+JQGNUewvpSk\nPIAXKvi908aSfCGjs7bGlJCJCuDuL5d6m7hZnP9rt9fJc70GElPpG0jc9fXwlz7T\nlsPb2ecatmG05Y4jPwdC+oN4MNCv9yQzEvCVMzl76EJaM602kIHC1CISn0rDFmYd\n9rSN7XPlNJw1F6PbpJ/BWQ+pXHKw3OEwNTETAUNYiVGnZU+B7a7bZC9f6/aPbJuV\nt8Qmg+UnDvW1Y8gmfHnxaWG2f5TDBvCHmcYtucIZPLQD4trAozC4ryqlmCWQNKbt\n0wIDAQAB\n-----END PUBLIC KEY-----\n"
|
||||||
|
},
|
||||||
|
"summary": "\u003cp\u003ehey yo this is my profile!\u003c/p\u003e",
|
||||||
|
"tag": {
|
||||||
|
"icon": {
|
||||||
|
"mediaType": "image/png",
|
||||||
|
"type": "Image",
|
||||||
|
"url": "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01F8MH9H8E4VG3KDYJR9EGPXCQ.png"
|
||||||
|
},
|
||||||
|
"id": "http://localhost:8080/emoji/01F8MH9H8E4VG3KDYJR9EGPXCQ",
|
||||||
|
"name": ":rainbow:",
|
||||||
|
"type": "Emoji",
|
||||||
|
"updated": "2021-09-20T12:40:37+02:00"
|
||||||
|
},
|
||||||
|
"type": "Person",
|
||||||
|
"url": "http://localhost:8080/@the_mighty_zork"
|
||||||
|
}`, trimmed)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InternalToASTestSuite) TestAccountToASWithSharedInbox() {
|
func (suite *InternalToASTestSuite) TestAccountToASWithSharedInbox() {
|
||||||
|
@ -87,14 +155,46 @@ func (suite *InternalToASTestSuite) TestAccountToASWithSharedInbox() {
|
||||||
ser, err := streams.Serialize(asPerson)
|
ser, err := streams.Serialize(asPerson)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
bytes, err := json.Marshal(ser)
|
bytes, err := json.MarshalIndent(ser, "", " ")
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
// trim off everything up to 'discoverable';
|
// trim off everything up to 'discoverable';
|
||||||
// this is necessary because the order of multiple 'context' entries is not determinate
|
// this is necessary because the order of multiple 'context' entries is not determinate
|
||||||
trimmed := strings.Split(string(bytes), "\"discoverable\"")[1]
|
trimmed := strings.Split(string(bytes), "\"discoverable\"")[1]
|
||||||
|
|
||||||
suite.Equal(`:true,"endpoints":{"sharedInbox":"http://localhost:8080/sharedInbox"},"featured":"http://localhost:8080/users/the_mighty_zork/collections/featured","followers":"http://localhost:8080/users/the_mighty_zork/followers","following":"http://localhost:8080/users/the_mighty_zork/following","icon":{"mediaType":"image/jpeg","type":"Image","url":"http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/avatar/original/01F8MH58A357CV5K7R7TJMSH6S.jpg"},"id":"http://localhost:8080/users/the_mighty_zork","image":{"mediaType":"image/jpeg","type":"Image","url":"http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/header/original/01PFPMWK2FF0D9WMHEJHR07C3Q.jpg"},"inbox":"http://localhost:8080/users/the_mighty_zork/inbox","manuallyApprovesFollowers":false,"name":"original zork (he/they)","outbox":"http://localhost:8080/users/the_mighty_zork/outbox","preferredUsername":"the_mighty_zork","publicKey":{"id":"http://localhost:8080/users/the_mighty_zork/main-key","owner":"http://localhost:8080/users/the_mighty_zork","publicKeyPem":"-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwXTcOAvM1Jiw5Ffpk0qn\nr0cwbNvFe/5zQ+Tp7tumK/ZnT37o7X0FUEXrxNi+dkhmeJ0gsaiN+JQGNUewvpSk\nPIAXKvi908aSfCGjs7bGlJCJCuDuL5d6m7hZnP9rt9fJc70GElPpG0jc9fXwlz7T\nlsPb2ecatmG05Y4jPwdC+oN4MNCv9yQzEvCVMzl76EJaM602kIHC1CISn0rDFmYd\n9rSN7XPlNJw1F6PbpJ/BWQ+pXHKw3OEwNTETAUNYiVGnZU+B7a7bZC9f6/aPbJuV\nt8Qmg+UnDvW1Y8gmfHnxaWG2f5TDBvCHmcYtucIZPLQD4trAozC4ryqlmCWQNKbt\n0wIDAQAB\n-----END PUBLIC KEY-----\n"},"summary":"\u003cp\u003ehey yo this is my profile!\u003c/p\u003e","tag":[],"type":"Person","url":"http://localhost:8080/@the_mighty_zork"}`, trimmed)
|
suite.Equal(`: true,
|
||||||
|
"endpoints": {
|
||||||
|
"sharedInbox": "http://localhost:8080/sharedInbox"
|
||||||
|
},
|
||||||
|
"featured": "http://localhost:8080/users/the_mighty_zork/collections/featured",
|
||||||
|
"followers": "http://localhost:8080/users/the_mighty_zork/followers",
|
||||||
|
"following": "http://localhost:8080/users/the_mighty_zork/following",
|
||||||
|
"icon": {
|
||||||
|
"mediaType": "image/jpeg",
|
||||||
|
"type": "Image",
|
||||||
|
"url": "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/avatar/original/01F8MH58A357CV5K7R7TJMSH6S.jpg"
|
||||||
|
},
|
||||||
|
"id": "http://localhost:8080/users/the_mighty_zork",
|
||||||
|
"image": {
|
||||||
|
"mediaType": "image/jpeg",
|
||||||
|
"type": "Image",
|
||||||
|
"url": "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/header/original/01PFPMWK2FF0D9WMHEJHR07C3Q.jpg"
|
||||||
|
},
|
||||||
|
"inbox": "http://localhost:8080/users/the_mighty_zork/inbox",
|
||||||
|
"manuallyApprovesFollowers": false,
|
||||||
|
"name": "original zork (he/they)",
|
||||||
|
"outbox": "http://localhost:8080/users/the_mighty_zork/outbox",
|
||||||
|
"preferredUsername": "the_mighty_zork",
|
||||||
|
"publicKey": {
|
||||||
|
"id": "http://localhost:8080/users/the_mighty_zork/main-key",
|
||||||
|
"owner": "http://localhost:8080/users/the_mighty_zork",
|
||||||
|
"publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwXTcOAvM1Jiw5Ffpk0qn\nr0cwbNvFe/5zQ+Tp7tumK/ZnT37o7X0FUEXrxNi+dkhmeJ0gsaiN+JQGNUewvpSk\nPIAXKvi908aSfCGjs7bGlJCJCuDuL5d6m7hZnP9rt9fJc70GElPpG0jc9fXwlz7T\nlsPb2ecatmG05Y4jPwdC+oN4MNCv9yQzEvCVMzl76EJaM602kIHC1CISn0rDFmYd\n9rSN7XPlNJw1F6PbpJ/BWQ+pXHKw3OEwNTETAUNYiVGnZU+B7a7bZC9f6/aPbJuV\nt8Qmg+UnDvW1Y8gmfHnxaWG2f5TDBvCHmcYtucIZPLQD4trAozC4ryqlmCWQNKbt\n0wIDAQAB\n-----END PUBLIC KEY-----\n"
|
||||||
|
},
|
||||||
|
"summary": "\u003cp\u003ehey yo this is my profile!\u003c/p\u003e",
|
||||||
|
"tag": [],
|
||||||
|
"type": "Person",
|
||||||
|
"url": "http://localhost:8080/@the_mighty_zork"
|
||||||
|
}`, trimmed)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InternalToASTestSuite) TestOutboxToASCollection() {
|
func (suite *InternalToASTestSuite) TestOutboxToASCollection() {
|
||||||
|
@ -107,20 +207,15 @@ func (suite *InternalToASTestSuite) TestOutboxToASCollection() {
|
||||||
ser, err := streams.Serialize(collection)
|
ser, err := streams.Serialize(collection)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
bytes, err := json.Marshal(ser)
|
bytes, err := json.MarshalIndent(ser, "", " ")
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
/*
|
suite.Equal(`{
|
||||||
we want this:
|
"@context": "https://www.w3.org/ns/activitystreams",
|
||||||
{
|
"first": "http://localhost:8080/users/admin/outbox?page=true",
|
||||||
"@context": "https://www.w3.org/ns/activitystreams",
|
"id": "http://localhost:8080/users/admin/outbox",
|
||||||
"first": "http://localhost:8080/users/admin/outbox?page=true",
|
"type": "OrderedCollection"
|
||||||
"id": "http://localhost:8080/users/admin/outbox",
|
}`, string(bytes))
|
||||||
"type": "OrderedCollection"
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
suite.Equal(`{"@context":"https://www.w3.org/ns/activitystreams","first":"http://localhost:8080/users/admin/outbox?page=true","id":"http://localhost:8080/users/admin/outbox","type":"OrderedCollection"}`, string(bytes))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InternalToASTestSuite) TestStatusToAS() {
|
func (suite *InternalToASTestSuite) TestStatusToAS() {
|
||||||
|
@ -133,10 +228,34 @@ func (suite *InternalToASTestSuite) TestStatusToAS() {
|
||||||
ser, err := streams.Serialize(asStatus)
|
ser, err := streams.Serialize(asStatus)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
bytes, err := json.Marshal(ser)
|
bytes, err := json.MarshalIndent(ser, "", " ")
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
suite.Equal(`{"@context":"https://www.w3.org/ns/activitystreams","attachment":[],"attributedTo":"http://localhost:8080/users/the_mighty_zork","cc":"http://localhost:8080/users/the_mighty_zork/followers","content":"hello everyone!","id":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY","published":"2021-10-20T12:40:37+02:00","replies":{"first":{"id":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/replies?page=true","next":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/replies?only_other_accounts=false\u0026page=true","partOf":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/replies","type":"CollectionPage"},"id":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/replies","type":"Collection"},"sensitive":true,"summary":"introduction post","tag":[],"to":"https://www.w3.org/ns/activitystreams#Public","type":"Note","url":"http://localhost:8080/@the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY"}`, string(bytes))
|
suite.Equal(`{
|
||||||
|
"@context": "https://www.w3.org/ns/activitystreams",
|
||||||
|
"attachment": [],
|
||||||
|
"attributedTo": "http://localhost:8080/users/the_mighty_zork",
|
||||||
|
"cc": "http://localhost:8080/users/the_mighty_zork/followers",
|
||||||
|
"content": "hello everyone!",
|
||||||
|
"id": "http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY",
|
||||||
|
"published": "2021-10-20T12:40:37+02:00",
|
||||||
|
"replies": {
|
||||||
|
"first": {
|
||||||
|
"id": "http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/replies?page=true",
|
||||||
|
"next": "http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/replies?only_other_accounts=false\u0026page=true",
|
||||||
|
"partOf": "http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/replies",
|
||||||
|
"type": "CollectionPage"
|
||||||
|
},
|
||||||
|
"id": "http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/replies",
|
||||||
|
"type": "Collection"
|
||||||
|
},
|
||||||
|
"sensitive": true,
|
||||||
|
"summary": "introduction post",
|
||||||
|
"tag": [],
|
||||||
|
"to": "https://www.w3.org/ns/activitystreams#Public",
|
||||||
|
"type": "Note",
|
||||||
|
"url": "http://localhost:8080/@the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY"
|
||||||
|
}`, string(bytes))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InternalToASTestSuite) TestStatusWithTagsToASWithIDs() {
|
func (suite *InternalToASTestSuite) TestStatusWithTagsToASWithIDs() {
|
||||||
|
@ -150,14 +269,52 @@ func (suite *InternalToASTestSuite) TestStatusWithTagsToASWithIDs() {
|
||||||
ser, err := streams.Serialize(asStatus)
|
ser, err := streams.Serialize(asStatus)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
bytes, err := json.Marshal(ser)
|
bytes, err := json.MarshalIndent(ser, "", " ")
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
// we can't be sure in what order the two context entries --
|
// we can't be sure in what order the two context entries --
|
||||||
// http://joinmastodon.org/ns, https://www.w3.org/ns/activitystreams --
|
// http://joinmastodon.org/ns, https://www.w3.org/ns/activitystreams --
|
||||||
// will appear, so trim them out of the string for consistency
|
// will appear, so trim them out of the string for consistency
|
||||||
trimmed := strings.SplitAfter(string(bytes), `"attachment":`)[1]
|
trimmed := strings.SplitAfter(string(bytes), `"attachment":`)[1]
|
||||||
suite.Equal(`{"blurhash":"LNJRdVM{00Rj%Mayt7j[4nWBofRj","mediaType":"image/jpeg","name":"Black and white image of some 50's style text saying: Welcome On Board","type":"Document","url":"http://localhost:8080/fileserver/01F8MH17FWEB39HZJ76B6VXSKF/attachment/original/01F8MH6NEM8D7527KZAECTCR76.jpg"},"attributedTo":"http://localhost:8080/users/admin","cc":"http://localhost:8080/users/admin/followers","content":"hello world! #welcome ! first post on the instance :rainbow: !","id":"http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R","published":"2021-10-20T11:36:45Z","replies":{"first":{"id":"http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R/replies?page=true","next":"http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R/replies?only_other_accounts=false\u0026page=true","partOf":"http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R/replies","type":"CollectionPage"},"id":"http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R/replies","type":"Collection"},"sensitive":false,"summary":"","tag":{"icon":{"mediaType":"image/png","type":"Image","url":"http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01F8MH9H8E4VG3KDYJR9EGPXCQ.png"},"id":"http://localhost:8080/emoji/01F8MH9H8E4VG3KDYJR9EGPXCQ","name":":rainbow:","type":"Emoji","updated":"2021-09-20T10:40:37Z"},"to":"https://www.w3.org/ns/activitystreams#Public","type":"Note","url":"http://localhost:8080/@admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R"}`, trimmed)
|
suite.Equal(` {
|
||||||
|
"blurhash": "LNJRdVM{00Rj%Mayt7j[4nWBofRj",
|
||||||
|
"mediaType": "image/jpeg",
|
||||||
|
"name": "Black and white image of some 50's style text saying: Welcome On Board",
|
||||||
|
"type": "Document",
|
||||||
|
"url": "http://localhost:8080/fileserver/01F8MH17FWEB39HZJ76B6VXSKF/attachment/original/01F8MH6NEM8D7527KZAECTCR76.jpg"
|
||||||
|
},
|
||||||
|
"attributedTo": "http://localhost:8080/users/admin",
|
||||||
|
"cc": "http://localhost:8080/users/admin/followers",
|
||||||
|
"content": "hello world! #welcome ! first post on the instance :rainbow: !",
|
||||||
|
"id": "http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R",
|
||||||
|
"published": "2021-10-20T11:36:45Z",
|
||||||
|
"replies": {
|
||||||
|
"first": {
|
||||||
|
"id": "http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R/replies?page=true",
|
||||||
|
"next": "http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R/replies?only_other_accounts=false\u0026page=true",
|
||||||
|
"partOf": "http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R/replies",
|
||||||
|
"type": "CollectionPage"
|
||||||
|
},
|
||||||
|
"id": "http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R/replies",
|
||||||
|
"type": "Collection"
|
||||||
|
},
|
||||||
|
"sensitive": false,
|
||||||
|
"summary": "",
|
||||||
|
"tag": {
|
||||||
|
"icon": {
|
||||||
|
"mediaType": "image/png",
|
||||||
|
"type": "Image",
|
||||||
|
"url": "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01F8MH9H8E4VG3KDYJR9EGPXCQ.png"
|
||||||
|
},
|
||||||
|
"id": "http://localhost:8080/emoji/01F8MH9H8E4VG3KDYJR9EGPXCQ",
|
||||||
|
"name": ":rainbow:",
|
||||||
|
"type": "Emoji",
|
||||||
|
"updated": "2021-09-20T10:40:37Z"
|
||||||
|
},
|
||||||
|
"to": "https://www.w3.org/ns/activitystreams#Public",
|
||||||
|
"type": "Note",
|
||||||
|
"url": "http://localhost:8080/@admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R"
|
||||||
|
}`, trimmed)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InternalToASTestSuite) TestStatusWithTagsToASFromDB() {
|
func (suite *InternalToASTestSuite) TestStatusWithTagsToASFromDB() {
|
||||||
|
@ -172,14 +329,52 @@ func (suite *InternalToASTestSuite) TestStatusWithTagsToASFromDB() {
|
||||||
ser, err := streams.Serialize(asStatus)
|
ser, err := streams.Serialize(asStatus)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
bytes, err := json.Marshal(ser)
|
bytes, err := json.MarshalIndent(ser, "", " ")
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
// we can't be sure in what order the two context entries --
|
// we can't be sure in what order the two context entries --
|
||||||
// http://joinmastodon.org/ns, https://www.w3.org/ns/activitystreams --
|
// http://joinmastodon.org/ns, https://www.w3.org/ns/activitystreams --
|
||||||
// will appear, so trim them out of the string for consistency
|
// will appear, so trim them out of the string for consistency
|
||||||
trimmed := strings.SplitAfter(string(bytes), `"attachment":`)[1]
|
trimmed := strings.SplitAfter(string(bytes), `"attachment":`)[1]
|
||||||
suite.Equal(`{"blurhash":"LNJRdVM{00Rj%Mayt7j[4nWBofRj","mediaType":"image/jpeg","name":"Black and white image of some 50's style text saying: Welcome On Board","type":"Document","url":"http://localhost:8080/fileserver/01F8MH17FWEB39HZJ76B6VXSKF/attachment/original/01F8MH6NEM8D7527KZAECTCR76.jpg"},"attributedTo":"http://localhost:8080/users/admin","cc":"http://localhost:8080/users/admin/followers","content":"hello world! #welcome ! first post on the instance :rainbow: !","id":"http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R","published":"2021-10-20T11:36:45Z","replies":{"first":{"id":"http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R/replies?page=true","next":"http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R/replies?only_other_accounts=false\u0026page=true","partOf":"http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R/replies","type":"CollectionPage"},"id":"http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R/replies","type":"Collection"},"sensitive":false,"summary":"","tag":{"icon":{"mediaType":"image/png","type":"Image","url":"http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01F8MH9H8E4VG3KDYJR9EGPXCQ.png"},"id":"http://localhost:8080/emoji/01F8MH9H8E4VG3KDYJR9EGPXCQ","name":":rainbow:","type":"Emoji","updated":"2021-09-20T10:40:37Z"},"to":"https://www.w3.org/ns/activitystreams#Public","type":"Note","url":"http://localhost:8080/@admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R"}`, trimmed)
|
suite.Equal(` {
|
||||||
|
"blurhash": "LNJRdVM{00Rj%Mayt7j[4nWBofRj",
|
||||||
|
"mediaType": "image/jpeg",
|
||||||
|
"name": "Black and white image of some 50's style text saying: Welcome On Board",
|
||||||
|
"type": "Document",
|
||||||
|
"url": "http://localhost:8080/fileserver/01F8MH17FWEB39HZJ76B6VXSKF/attachment/original/01F8MH6NEM8D7527KZAECTCR76.jpg"
|
||||||
|
},
|
||||||
|
"attributedTo": "http://localhost:8080/users/admin",
|
||||||
|
"cc": "http://localhost:8080/users/admin/followers",
|
||||||
|
"content": "hello world! #welcome ! first post on the instance :rainbow: !",
|
||||||
|
"id": "http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R",
|
||||||
|
"published": "2021-10-20T11:36:45Z",
|
||||||
|
"replies": {
|
||||||
|
"first": {
|
||||||
|
"id": "http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R/replies?page=true",
|
||||||
|
"next": "http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R/replies?only_other_accounts=false\u0026page=true",
|
||||||
|
"partOf": "http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R/replies",
|
||||||
|
"type": "CollectionPage"
|
||||||
|
},
|
||||||
|
"id": "http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R/replies",
|
||||||
|
"type": "Collection"
|
||||||
|
},
|
||||||
|
"sensitive": false,
|
||||||
|
"summary": "",
|
||||||
|
"tag": {
|
||||||
|
"icon": {
|
||||||
|
"mediaType": "image/png",
|
||||||
|
"type": "Image",
|
||||||
|
"url": "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01F8MH9H8E4VG3KDYJR9EGPXCQ.png"
|
||||||
|
},
|
||||||
|
"id": "http://localhost:8080/emoji/01F8MH9H8E4VG3KDYJR9EGPXCQ",
|
||||||
|
"name": ":rainbow:",
|
||||||
|
"type": "Emoji",
|
||||||
|
"updated": "2021-09-20T10:40:37Z"
|
||||||
|
},
|
||||||
|
"to": "https://www.w3.org/ns/activitystreams#Public",
|
||||||
|
"type": "Note",
|
||||||
|
"url": "http://localhost:8080/@admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R"
|
||||||
|
}`, trimmed)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InternalToASTestSuite) TestStatusToASWithMentions() {
|
func (suite *InternalToASTestSuite) TestStatusToASWithMentions() {
|
||||||
|
@ -195,10 +390,42 @@ func (suite *InternalToASTestSuite) TestStatusToASWithMentions() {
|
||||||
ser, err := streams.Serialize(asStatus)
|
ser, err := streams.Serialize(asStatus)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
bytes, err := json.Marshal(ser)
|
bytes, err := json.MarshalIndent(ser, "", " ")
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
suite.Equal(`{"@context":"https://www.w3.org/ns/activitystreams","attachment":[],"attributedTo":"http://localhost:8080/users/admin","cc":["http://localhost:8080/users/admin/followers","http://localhost:8080/users/the_mighty_zork"],"content":"hi @the_mighty_zork welcome to the instance!","id":"http://localhost:8080/users/admin/statuses/01FF25D5Q0DH7CHD57CTRS6WK0","inReplyTo":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY","published":"2021-11-20T13:32:16Z","replies":{"first":{"id":"http://localhost:8080/users/admin/statuses/01FF25D5Q0DH7CHD57CTRS6WK0/replies?page=true","next":"http://localhost:8080/users/admin/statuses/01FF25D5Q0DH7CHD57CTRS6WK0/replies?only_other_accounts=false\u0026page=true","partOf":"http://localhost:8080/users/admin/statuses/01FF25D5Q0DH7CHD57CTRS6WK0/replies","type":"CollectionPage"},"id":"http://localhost:8080/users/admin/statuses/01FF25D5Q0DH7CHD57CTRS6WK0/replies","type":"Collection"},"sensitive":false,"summary":"","tag":{"href":"http://localhost:8080/users/the_mighty_zork","name":"@the_mighty_zork@localhost:8080","type":"Mention"},"to":"https://www.w3.org/ns/activitystreams#Public","type":"Note","url":"http://localhost:8080/@admin/statuses/01FF25D5Q0DH7CHD57CTRS6WK0"}`, string(bytes))
|
suite.Equal(`{
|
||||||
|
"@context": "https://www.w3.org/ns/activitystreams",
|
||||||
|
"attachment": [],
|
||||||
|
"attributedTo": "http://localhost:8080/users/admin",
|
||||||
|
"cc": [
|
||||||
|
"http://localhost:8080/users/admin/followers",
|
||||||
|
"http://localhost:8080/users/the_mighty_zork"
|
||||||
|
],
|
||||||
|
"content": "hi @the_mighty_zork welcome to the instance!",
|
||||||
|
"id": "http://localhost:8080/users/admin/statuses/01FF25D5Q0DH7CHD57CTRS6WK0",
|
||||||
|
"inReplyTo": "http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY",
|
||||||
|
"published": "2021-11-20T13:32:16Z",
|
||||||
|
"replies": {
|
||||||
|
"first": {
|
||||||
|
"id": "http://localhost:8080/users/admin/statuses/01FF25D5Q0DH7CHD57CTRS6WK0/replies?page=true",
|
||||||
|
"next": "http://localhost:8080/users/admin/statuses/01FF25D5Q0DH7CHD57CTRS6WK0/replies?only_other_accounts=false\u0026page=true",
|
||||||
|
"partOf": "http://localhost:8080/users/admin/statuses/01FF25D5Q0DH7CHD57CTRS6WK0/replies",
|
||||||
|
"type": "CollectionPage"
|
||||||
|
},
|
||||||
|
"id": "http://localhost:8080/users/admin/statuses/01FF25D5Q0DH7CHD57CTRS6WK0/replies",
|
||||||
|
"type": "Collection"
|
||||||
|
},
|
||||||
|
"sensitive": false,
|
||||||
|
"summary": "",
|
||||||
|
"tag": {
|
||||||
|
"href": "http://localhost:8080/users/the_mighty_zork",
|
||||||
|
"name": "@the_mighty_zork@localhost:8080",
|
||||||
|
"type": "Mention"
|
||||||
|
},
|
||||||
|
"to": "https://www.w3.org/ns/activitystreams#Public",
|
||||||
|
"type": "Note",
|
||||||
|
"url": "http://localhost:8080/@admin/statuses/01FF25D5Q0DH7CHD57CTRS6WK0"
|
||||||
|
}`, string(bytes))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InternalToASTestSuite) TestStatusesToASOutboxPage() {
|
func (suite *InternalToASTestSuite) TestStatusesToASOutboxPage() {
|
||||||
|
@ -215,44 +442,37 @@ func (suite *InternalToASTestSuite) TestStatusesToASOutboxPage() {
|
||||||
ser, err := streams.Serialize(page)
|
ser, err := streams.Serialize(page)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
bytes, err := json.Marshal(ser)
|
bytes, err := json.MarshalIndent(ser, "", " ")
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
/*
|
suite.Equal(`{
|
||||||
|
"@context": "https://www.w3.org/ns/activitystreams",
|
||||||
we want this:
|
"id": "http://localhost:8080/users/admin/outbox?page=true",
|
||||||
|
"next": "http://localhost:8080/users/admin/outbox?page=true\u0026max_id=01F8MH75CBF9JFX4ZAD54N0W0R",
|
||||||
{
|
"orderedItems": [
|
||||||
"@context": "https://www.w3.org/ns/activitystreams",
|
{
|
||||||
"id": "http://localhost:8080/users/admin/outbox?page=true",
|
"actor": "http://localhost:8080/users/admin",
|
||||||
"next": "http://localhost:8080/users/admin/outbox?page=true&max_id=01F8MH75CBF9JFX4ZAD54N0W0R",
|
"cc": "http://localhost:8080/users/admin/followers",
|
||||||
"orderedItems": [
|
"id": "http://localhost:8080/users/admin/statuses/01F8MHAAY43M6RJ473VQFCVH37/activity",
|
||||||
{
|
"object": "http://localhost:8080/users/admin/statuses/01F8MHAAY43M6RJ473VQFCVH37",
|
||||||
"actor": "http://localhost:8080/users/admin",
|
"published": "2021-10-20T12:36:45Z",
|
||||||
"cc": "http://localhost:8080/users/admin/followers",
|
"to": "https://www.w3.org/ns/activitystreams#Public",
|
||||||
"id": "http://localhost:8080/users/admin/statuses/01F8MHAAY43M6RJ473VQFCVH37/activity",
|
"type": "Create"
|
||||||
"object": "http://localhost:8080/users/admin/statuses/01F8MHAAY43M6RJ473VQFCVH37",
|
},
|
||||||
"published": "2021-10-20T12:36:45Z",
|
{
|
||||||
"to": "https://www.w3.org/ns/activitystreams#Public",
|
"actor": "http://localhost:8080/users/admin",
|
||||||
"type": "Create"
|
"cc": "http://localhost:8080/users/admin/followers",
|
||||||
},
|
"id": "http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R/activity",
|
||||||
{
|
"object": "http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R",
|
||||||
"actor": "http://localhost:8080/users/admin",
|
"published": "2021-10-20T11:36:45Z",
|
||||||
"cc": "http://localhost:8080/users/admin/followers",
|
"to": "https://www.w3.org/ns/activitystreams#Public",
|
||||||
"id": "http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R/activity",
|
"type": "Create"
|
||||||
"object": "http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R",
|
}
|
||||||
"published": "2021-10-20T11:36:45Z",
|
],
|
||||||
"to": "https://www.w3.org/ns/activitystreams#Public",
|
"partOf": "http://localhost:8080/users/admin/outbox",
|
||||||
"type": "Create"
|
"prev": "http://localhost:8080/users/admin/outbox?page=true\u0026min_id=01F8MHAAY43M6RJ473VQFCVH37",
|
||||||
}
|
"type": "OrderedCollectionPage"
|
||||||
],
|
}`, string(bytes))
|
||||||
"partOf": "http://localhost:8080/users/admin/outbox",
|
|
||||||
"prev": "http://localhost:8080/users/admin/outbox?page=true&min_id=01F8MHAAY43M6RJ473VQFCVH37",
|
|
||||||
"type": "OrderedCollectionPage"
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
suite.Equal(`{"@context":"https://www.w3.org/ns/activitystreams","id":"http://localhost:8080/users/admin/outbox?page=true","next":"http://localhost:8080/users/admin/outbox?page=true\u0026max_id=01F8MH75CBF9JFX4ZAD54N0W0R","orderedItems":[{"actor":"http://localhost:8080/users/admin","cc":"http://localhost:8080/users/admin/followers","id":"http://localhost:8080/users/admin/statuses/01F8MHAAY43M6RJ473VQFCVH37/activity","object":"http://localhost:8080/users/admin/statuses/01F8MHAAY43M6RJ473VQFCVH37","published":"2021-10-20T12:36:45Z","to":"https://www.w3.org/ns/activitystreams#Public","type":"Create"},{"actor":"http://localhost:8080/users/admin","cc":"http://localhost:8080/users/admin/followers","id":"http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R/activity","object":"http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R","published":"2021-10-20T11:36:45Z","to":"https://www.w3.org/ns/activitystreams#Public","type":"Create"}],"partOf":"http://localhost:8080/users/admin/outbox","prev":"http://localhost:8080/users/admin/outbox?page=true\u0026min_id=01F8MHAAY43M6RJ473VQFCVH37","type":"OrderedCollectionPage"}`, string(bytes))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InternalToASTestSuite) TestSelfBoostFollowersOnlyToAS() {
|
func (suite *InternalToASTestSuite) TestSelfBoostFollowersOnlyToAS() {
|
||||||
|
@ -275,10 +495,19 @@ func (suite *InternalToASTestSuite) TestSelfBoostFollowersOnlyToAS() {
|
||||||
ser, err := streams.Serialize(asBoost)
|
ser, err := streams.Serialize(asBoost)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
bytes, err := json.Marshal(ser)
|
bytes, err := json.MarshalIndent(ser, "", " ")
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
suite.Equal(`{"@context":"https://www.w3.org/ns/activitystreams","actor":"http://localhost:8080/users/the_mighty_zork","cc":"http://localhost:8080/users/the_mighty_zork","id":"http://localhost:8080/users/the_mighty_zork/statuses/01G74JJ1KS331G2JXHRMZCE0ER","object":"http://localhost:8080/users/the_mighty_zork/statuses/01FCTA44PW9H1TB328S9AQXKDS","published":"2022-06-09T13:12:00Z","to":"http://localhost:8080/users/the_mighty_zork/followers","type":"Announce"}`, string(bytes))
|
suite.Equal(`{
|
||||||
|
"@context": "https://www.w3.org/ns/activitystreams",
|
||||||
|
"actor": "http://localhost:8080/users/the_mighty_zork",
|
||||||
|
"cc": "http://localhost:8080/users/the_mighty_zork",
|
||||||
|
"id": "http://localhost:8080/users/the_mighty_zork/statuses/01G74JJ1KS331G2JXHRMZCE0ER",
|
||||||
|
"object": "http://localhost:8080/users/the_mighty_zork/statuses/01FCTA44PW9H1TB328S9AQXKDS",
|
||||||
|
"published": "2022-06-09T13:12:00Z",
|
||||||
|
"to": "http://localhost:8080/users/the_mighty_zork/followers",
|
||||||
|
"type": "Announce"
|
||||||
|
}`, string(bytes))
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestInternalToASTestSuite(t *testing.T) {
|
func TestInternalToASTestSuite(t *testing.T) {
|
||||||
|
|
|
@ -38,9 +38,31 @@ func (suite *InternalToFrontendTestSuite) TestAccountToFrontend() {
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
suite.NotNil(apiAccount)
|
suite.NotNil(apiAccount)
|
||||||
|
|
||||||
b, err := json.Marshal(apiAccount)
|
b, err := json.MarshalIndent(apiAccount, "", " ")
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
suite.Equal(`{"id":"01F8MH1H7YV1Z7D2C8K2730QBF","username":"the_mighty_zork","acct":"the_mighty_zork","display_name":"original zork (he/they)","locked":false,"bot":false,"created_at":"2022-05-20T11:09:18.000Z","note":"\u003cp\u003ehey yo this is my profile!\u003c/p\u003e","url":"http://localhost:8080/@the_mighty_zork","avatar":"http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/avatar/original/01F8MH58A357CV5K7R7TJMSH6S.jpg","avatar_static":"http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/avatar/small/01F8MH58A357CV5K7R7TJMSH6S.jpg","header":"http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/header/original/01PFPMWK2FF0D9WMHEJHR07C3Q.jpg","header_static":"http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/header/small/01PFPMWK2FF0D9WMHEJHR07C3Q.jpg","followers_count":2,"following_count":2,"statuses_count":5,"last_status_at":"2022-05-20T11:37:55.000Z","emojis":[],"fields":[],"enable_rss":true,"role":"user"}`, string(b))
|
suite.Equal(`{
|
||||||
|
"id": "01F8MH1H7YV1Z7D2C8K2730QBF",
|
||||||
|
"username": "the_mighty_zork",
|
||||||
|
"acct": "the_mighty_zork",
|
||||||
|
"display_name": "original zork (he/they)",
|
||||||
|
"locked": false,
|
||||||
|
"bot": false,
|
||||||
|
"created_at": "2022-05-20T11:09:18.000Z",
|
||||||
|
"note": "\u003cp\u003ehey yo this is my profile!\u003c/p\u003e",
|
||||||
|
"url": "http://localhost:8080/@the_mighty_zork",
|
||||||
|
"avatar": "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/avatar/original/01F8MH58A357CV5K7R7TJMSH6S.jpg",
|
||||||
|
"avatar_static": "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/avatar/small/01F8MH58A357CV5K7R7TJMSH6S.jpg",
|
||||||
|
"header": "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/header/original/01PFPMWK2FF0D9WMHEJHR07C3Q.jpg",
|
||||||
|
"header_static": "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/header/small/01PFPMWK2FF0D9WMHEJHR07C3Q.jpg",
|
||||||
|
"followers_count": 2,
|
||||||
|
"following_count": 2,
|
||||||
|
"statuses_count": 5,
|
||||||
|
"last_status_at": "2022-05-20T11:37:55.000Z",
|
||||||
|
"emojis": [],
|
||||||
|
"fields": [],
|
||||||
|
"enable_rss": true,
|
||||||
|
"role": "user"
|
||||||
|
}`, string(b))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InternalToFrontendTestSuite) TestAccountToFrontendWithEmojiStruct() {
|
func (suite *InternalToFrontendTestSuite) TestAccountToFrontendWithEmojiStruct() {
|
||||||
|
@ -53,9 +75,39 @@ func (suite *InternalToFrontendTestSuite) TestAccountToFrontendWithEmojiStruct()
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
suite.NotNil(apiAccount)
|
suite.NotNil(apiAccount)
|
||||||
|
|
||||||
b, err := json.Marshal(apiAccount)
|
b, err := json.MarshalIndent(apiAccount, "", " ")
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
suite.Equal(`{"id":"01F8MH1H7YV1Z7D2C8K2730QBF","username":"the_mighty_zork","acct":"the_mighty_zork","display_name":"original zork (he/they)","locked":false,"bot":false,"created_at":"2022-05-20T11:09:18.000Z","note":"\u003cp\u003ehey yo this is my profile!\u003c/p\u003e","url":"http://localhost:8080/@the_mighty_zork","avatar":"http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/avatar/original/01F8MH58A357CV5K7R7TJMSH6S.jpg","avatar_static":"http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/avatar/small/01F8MH58A357CV5K7R7TJMSH6S.jpg","header":"http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/header/original/01PFPMWK2FF0D9WMHEJHR07C3Q.jpg","header_static":"http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/header/small/01PFPMWK2FF0D9WMHEJHR07C3Q.jpg","followers_count":2,"following_count":2,"statuses_count":5,"last_status_at":"2022-05-20T11:37:55.000Z","emojis":[{"shortcode":"rainbow","url":"http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01F8MH9H8E4VG3KDYJR9EGPXCQ.png","static_url":"http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/static/01F8MH9H8E4VG3KDYJR9EGPXCQ.png","visible_in_picker":true,"category":"reactions"}],"fields":[],"enable_rss":true,"role":"user"}`, string(b))
|
suite.Equal(`{
|
||||||
|
"id": "01F8MH1H7YV1Z7D2C8K2730QBF",
|
||||||
|
"username": "the_mighty_zork",
|
||||||
|
"acct": "the_mighty_zork",
|
||||||
|
"display_name": "original zork (he/they)",
|
||||||
|
"locked": false,
|
||||||
|
"bot": false,
|
||||||
|
"created_at": "2022-05-20T11:09:18.000Z",
|
||||||
|
"note": "\u003cp\u003ehey yo this is my profile!\u003c/p\u003e",
|
||||||
|
"url": "http://localhost:8080/@the_mighty_zork",
|
||||||
|
"avatar": "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/avatar/original/01F8MH58A357CV5K7R7TJMSH6S.jpg",
|
||||||
|
"avatar_static": "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/avatar/small/01F8MH58A357CV5K7R7TJMSH6S.jpg",
|
||||||
|
"header": "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/header/original/01PFPMWK2FF0D9WMHEJHR07C3Q.jpg",
|
||||||
|
"header_static": "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/header/small/01PFPMWK2FF0D9WMHEJHR07C3Q.jpg",
|
||||||
|
"followers_count": 2,
|
||||||
|
"following_count": 2,
|
||||||
|
"statuses_count": 5,
|
||||||
|
"last_status_at": "2022-05-20T11:37:55.000Z",
|
||||||
|
"emojis": [
|
||||||
|
{
|
||||||
|
"shortcode": "rainbow",
|
||||||
|
"url": "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01F8MH9H8E4VG3KDYJR9EGPXCQ.png",
|
||||||
|
"static_url": "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/static/01F8MH9H8E4VG3KDYJR9EGPXCQ.png",
|
||||||
|
"visible_in_picker": true,
|
||||||
|
"category": "reactions"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"fields": [],
|
||||||
|
"enable_rss": true,
|
||||||
|
"role": "user"
|
||||||
|
}`, string(b))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InternalToFrontendTestSuite) TestAccountToFrontendWithEmojiIDs() {
|
func (suite *InternalToFrontendTestSuite) TestAccountToFrontendWithEmojiIDs() {
|
||||||
|
@ -68,9 +120,39 @@ func (suite *InternalToFrontendTestSuite) TestAccountToFrontendWithEmojiIDs() {
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
suite.NotNil(apiAccount)
|
suite.NotNil(apiAccount)
|
||||||
|
|
||||||
b, err := json.Marshal(apiAccount)
|
b, err := json.MarshalIndent(apiAccount, "", " ")
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
suite.Equal(`{"id":"01F8MH1H7YV1Z7D2C8K2730QBF","username":"the_mighty_zork","acct":"the_mighty_zork","display_name":"original zork (he/they)","locked":false,"bot":false,"created_at":"2022-05-20T11:09:18.000Z","note":"\u003cp\u003ehey yo this is my profile!\u003c/p\u003e","url":"http://localhost:8080/@the_mighty_zork","avatar":"http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/avatar/original/01F8MH58A357CV5K7R7TJMSH6S.jpg","avatar_static":"http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/avatar/small/01F8MH58A357CV5K7R7TJMSH6S.jpg","header":"http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/header/original/01PFPMWK2FF0D9WMHEJHR07C3Q.jpg","header_static":"http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/header/small/01PFPMWK2FF0D9WMHEJHR07C3Q.jpg","followers_count":2,"following_count":2,"statuses_count":5,"last_status_at":"2022-05-20T11:37:55.000Z","emojis":[{"shortcode":"rainbow","url":"http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01F8MH9H8E4VG3KDYJR9EGPXCQ.png","static_url":"http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/static/01F8MH9H8E4VG3KDYJR9EGPXCQ.png","visible_in_picker":true,"category":"reactions"}],"fields":[],"enable_rss":true,"role":"user"}`, string(b))
|
suite.Equal(`{
|
||||||
|
"id": "01F8MH1H7YV1Z7D2C8K2730QBF",
|
||||||
|
"username": "the_mighty_zork",
|
||||||
|
"acct": "the_mighty_zork",
|
||||||
|
"display_name": "original zork (he/they)",
|
||||||
|
"locked": false,
|
||||||
|
"bot": false,
|
||||||
|
"created_at": "2022-05-20T11:09:18.000Z",
|
||||||
|
"note": "\u003cp\u003ehey yo this is my profile!\u003c/p\u003e",
|
||||||
|
"url": "http://localhost:8080/@the_mighty_zork",
|
||||||
|
"avatar": "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/avatar/original/01F8MH58A357CV5K7R7TJMSH6S.jpg",
|
||||||
|
"avatar_static": "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/avatar/small/01F8MH58A357CV5K7R7TJMSH6S.jpg",
|
||||||
|
"header": "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/header/original/01PFPMWK2FF0D9WMHEJHR07C3Q.jpg",
|
||||||
|
"header_static": "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/header/small/01PFPMWK2FF0D9WMHEJHR07C3Q.jpg",
|
||||||
|
"followers_count": 2,
|
||||||
|
"following_count": 2,
|
||||||
|
"statuses_count": 5,
|
||||||
|
"last_status_at": "2022-05-20T11:37:55.000Z",
|
||||||
|
"emojis": [
|
||||||
|
{
|
||||||
|
"shortcode": "rainbow",
|
||||||
|
"url": "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01F8MH9H8E4VG3KDYJR9EGPXCQ.png",
|
||||||
|
"static_url": "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/static/01F8MH9H8E4VG3KDYJR9EGPXCQ.png",
|
||||||
|
"visible_in_picker": true,
|
||||||
|
"category": "reactions"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"fields": [],
|
||||||
|
"enable_rss": true,
|
||||||
|
"role": "user"
|
||||||
|
}`, string(b))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InternalToFrontendTestSuite) TestAccountToFrontendSensitive() {
|
func (suite *InternalToFrontendTestSuite) TestAccountToFrontendSensitive() {
|
||||||
|
@ -79,9 +161,40 @@ func (suite *InternalToFrontendTestSuite) TestAccountToFrontendSensitive() {
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
suite.NotNil(apiAccount)
|
suite.NotNil(apiAccount)
|
||||||
|
|
||||||
b, err := json.Marshal(apiAccount)
|
b, err := json.MarshalIndent(apiAccount, "", " ")
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
suite.Equal(`{"id":"01F8MH1H7YV1Z7D2C8K2730QBF","username":"the_mighty_zork","acct":"the_mighty_zork","display_name":"original zork (he/they)","locked":false,"bot":false,"created_at":"2022-05-20T11:09:18.000Z","note":"\u003cp\u003ehey yo this is my profile!\u003c/p\u003e","url":"http://localhost:8080/@the_mighty_zork","avatar":"http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/avatar/original/01F8MH58A357CV5K7R7TJMSH6S.jpg","avatar_static":"http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/avatar/small/01F8MH58A357CV5K7R7TJMSH6S.jpg","header":"http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/header/original/01PFPMWK2FF0D9WMHEJHR07C3Q.jpg","header_static":"http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/header/small/01PFPMWK2FF0D9WMHEJHR07C3Q.jpg","followers_count":2,"following_count":2,"statuses_count":5,"last_status_at":"2022-05-20T11:37:55.000Z","emojis":[],"fields":[],"source":{"privacy":"public","language":"en","status_format":"plain","note":"hey yo this is my profile!","fields":[]},"enable_rss":true,"role":"user"}`, string(b))
|
suite.Equal(`{
|
||||||
|
"id": "01F8MH1H7YV1Z7D2C8K2730QBF",
|
||||||
|
"username": "the_mighty_zork",
|
||||||
|
"acct": "the_mighty_zork",
|
||||||
|
"display_name": "original zork (he/they)",
|
||||||
|
"locked": false,
|
||||||
|
"bot": false,
|
||||||
|
"created_at": "2022-05-20T11:09:18.000Z",
|
||||||
|
"note": "\u003cp\u003ehey yo this is my profile!\u003c/p\u003e",
|
||||||
|
"url": "http://localhost:8080/@the_mighty_zork",
|
||||||
|
"avatar": "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/avatar/original/01F8MH58A357CV5K7R7TJMSH6S.jpg",
|
||||||
|
"avatar_static": "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/avatar/small/01F8MH58A357CV5K7R7TJMSH6S.jpg",
|
||||||
|
"header": "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/header/original/01PFPMWK2FF0D9WMHEJHR07C3Q.jpg",
|
||||||
|
"header_static": "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/header/small/01PFPMWK2FF0D9WMHEJHR07C3Q.jpg",
|
||||||
|
"followers_count": 2,
|
||||||
|
"following_count": 2,
|
||||||
|
"statuses_count": 5,
|
||||||
|
"last_status_at": "2022-05-20T11:37:55.000Z",
|
||||||
|
"emojis": [],
|
||||||
|
"fields": [],
|
||||||
|
"source": {
|
||||||
|
"privacy": "public",
|
||||||
|
"sensitive": false,
|
||||||
|
"language": "en",
|
||||||
|
"status_format": "plain",
|
||||||
|
"note": "hey yo this is my profile!",
|
||||||
|
"fields": [],
|
||||||
|
"follow_requests_count": 0
|
||||||
|
},
|
||||||
|
"enable_rss": true,
|
||||||
|
"role": "user"
|
||||||
|
}`, string(b))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InternalToFrontendTestSuite) TestStatusToFrontend() {
|
func (suite *InternalToFrontendTestSuite) TestStatusToFrontend() {
|
||||||
|
@ -90,10 +203,108 @@ func (suite *InternalToFrontendTestSuite) TestStatusToFrontend() {
|
||||||
apiStatus, err := suite.typeconverter.StatusToAPIStatus(context.Background(), testStatus, requestingAccount)
|
apiStatus, err := suite.typeconverter.StatusToAPIStatus(context.Background(), testStatus, requestingAccount)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
b, err := json.Marshal(apiStatus)
|
b, err := json.MarshalIndent(apiStatus, "", " ")
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
suite.Equal(`{"id":"01F8MH75CBF9JFX4ZAD54N0W0R","created_at":"2021-10-20T11:36:45.000Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":"en","uri":"http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R","url":"http://localhost:8080/@admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R","replies_count":0,"reblogs_count":0,"favourites_count":1,"favourited":true,"reblogged":false,"muted":false,"bookmarked":true,"pinned":false,"content":"hello world! #welcome ! first post on the instance :rainbow: !","reblog":null,"application":{"name":"superseriousbusiness","website":"https://superserious.business"},"account":{"id":"01F8MH17FWEB39HZJ76B6VXSKF","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"created_at":"2022-05-17T13:10:59.000Z","note":"","url":"http://localhost:8080/@admin","avatar":"","avatar_static":"","header":"http://localhost:8080/assets/default_header.png","header_static":"http://localhost:8080/assets/default_header.png","followers_count":1,"following_count":1,"statuses_count":4,"last_status_at":"2021-10-20T10:41:37.000Z","emojis":[],"fields":[],"enable_rss":true,"role":"admin"},"media_attachments":[{"id":"01F8MH6NEM8D7527KZAECTCR76","type":"image","url":"http://localhost:8080/fileserver/01F8MH17FWEB39HZJ76B6VXSKF/attachment/original/01F8MH6NEM8D7527KZAECTCR76.jpg","text_url":"http://localhost:8080/fileserver/01F8MH17FWEB39HZJ76B6VXSKF/attachment/original/01F8MH6NEM8D7527KZAECTCR76.jpg","preview_url":"http://localhost:8080/fileserver/01F8MH17FWEB39HZJ76B6VXSKF/attachment/small/01F8MH6NEM8D7527KZAECTCR76.jpg","remote_url":null,"preview_remote_url":null,"meta":{"original":{"width":1200,"height":630,"size":"1200x630","aspect":1.9047619},"small":{"width":256,"height":134,"size":"256x134","aspect":1.9104477},"focus":{"x":0,"y":0}},"description":"Black and white image of some 50's style text saying: Welcome On Board","blurhash":"LNJRdVM{00Rj%Mayt7j[4nWBofRj"}],"mentions":[],"tags":[{"name":"welcome","url":"http://localhost:8080/tags/welcome"}],"emojis":[{"shortcode":"rainbow","url":"http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01F8MH9H8E4VG3KDYJR9EGPXCQ.png","static_url":"http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/static/01F8MH9H8E4VG3KDYJR9EGPXCQ.png","visible_in_picker":true,"category":"reactions"}],"card":null,"poll":null,"text":"hello world! #welcome ! first post on the instance :rainbow: !"}`, string(b))
|
suite.Equal(`{
|
||||||
|
"id": "01F8MH75CBF9JFX4ZAD54N0W0R",
|
||||||
|
"created_at": "2021-10-20T11:36:45.000Z",
|
||||||
|
"in_reply_to_id": null,
|
||||||
|
"in_reply_to_account_id": null,
|
||||||
|
"sensitive": false,
|
||||||
|
"spoiler_text": "",
|
||||||
|
"visibility": "public",
|
||||||
|
"language": "en",
|
||||||
|
"uri": "http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R",
|
||||||
|
"url": "http://localhost:8080/@admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R",
|
||||||
|
"replies_count": 0,
|
||||||
|
"reblogs_count": 0,
|
||||||
|
"favourites_count": 1,
|
||||||
|
"favourited": true,
|
||||||
|
"reblogged": false,
|
||||||
|
"muted": false,
|
||||||
|
"bookmarked": true,
|
||||||
|
"pinned": false,
|
||||||
|
"content": "hello world! #welcome ! first post on the instance :rainbow: !",
|
||||||
|
"reblog": null,
|
||||||
|
"application": {
|
||||||
|
"name": "superseriousbusiness",
|
||||||
|
"website": "https://superserious.business"
|
||||||
|
},
|
||||||
|
"account": {
|
||||||
|
"id": "01F8MH17FWEB39HZJ76B6VXSKF",
|
||||||
|
"username": "admin",
|
||||||
|
"acct": "admin",
|
||||||
|
"display_name": "",
|
||||||
|
"locked": false,
|
||||||
|
"bot": false,
|
||||||
|
"created_at": "2022-05-17T13:10:59.000Z",
|
||||||
|
"note": "",
|
||||||
|
"url": "http://localhost:8080/@admin",
|
||||||
|
"avatar": "",
|
||||||
|
"avatar_static": "",
|
||||||
|
"header": "http://localhost:8080/assets/default_header.png",
|
||||||
|
"header_static": "http://localhost:8080/assets/default_header.png",
|
||||||
|
"followers_count": 1,
|
||||||
|
"following_count": 1,
|
||||||
|
"statuses_count": 4,
|
||||||
|
"last_status_at": "2021-10-20T10:41:37.000Z",
|
||||||
|
"emojis": [],
|
||||||
|
"fields": [],
|
||||||
|
"enable_rss": true,
|
||||||
|
"role": "admin"
|
||||||
|
},
|
||||||
|
"media_attachments": [
|
||||||
|
{
|
||||||
|
"id": "01F8MH6NEM8D7527KZAECTCR76",
|
||||||
|
"type": "image",
|
||||||
|
"url": "http://localhost:8080/fileserver/01F8MH17FWEB39HZJ76B6VXSKF/attachment/original/01F8MH6NEM8D7527KZAECTCR76.jpg",
|
||||||
|
"text_url": "http://localhost:8080/fileserver/01F8MH17FWEB39HZJ76B6VXSKF/attachment/original/01F8MH6NEM8D7527KZAECTCR76.jpg",
|
||||||
|
"preview_url": "http://localhost:8080/fileserver/01F8MH17FWEB39HZJ76B6VXSKF/attachment/small/01F8MH6NEM8D7527KZAECTCR76.jpg",
|
||||||
|
"remote_url": null,
|
||||||
|
"preview_remote_url": null,
|
||||||
|
"meta": {
|
||||||
|
"original": {
|
||||||
|
"width": 1200,
|
||||||
|
"height": 630,
|
||||||
|
"size": "1200x630",
|
||||||
|
"aspect": 1.9047619
|
||||||
|
},
|
||||||
|
"small": {
|
||||||
|
"width": 256,
|
||||||
|
"height": 134,
|
||||||
|
"size": "256x134",
|
||||||
|
"aspect": 1.9104477
|
||||||
|
},
|
||||||
|
"focus": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"description": "Black and white image of some 50's style text saying: Welcome On Board",
|
||||||
|
"blurhash": "LNJRdVM{00Rj%Mayt7j[4nWBofRj"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mentions": [],
|
||||||
|
"tags": [
|
||||||
|
{
|
||||||
|
"name": "welcome",
|
||||||
|
"url": "http://localhost:8080/tags/welcome"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"emojis": [
|
||||||
|
{
|
||||||
|
"shortcode": "rainbow",
|
||||||
|
"url": "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01F8MH9H8E4VG3KDYJR9EGPXCQ.png",
|
||||||
|
"static_url": "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/static/01F8MH9H8E4VG3KDYJR9EGPXCQ.png",
|
||||||
|
"visible_in_picker": true,
|
||||||
|
"category": "reactions"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"card": null,
|
||||||
|
"poll": null,
|
||||||
|
"text": "hello world! #welcome ! first post on the instance :rainbow: !"
|
||||||
|
}`, string(b))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InternalToFrontendTestSuite) TestStatusToFrontendUnknownLanguage() {
|
func (suite *InternalToFrontendTestSuite) TestStatusToFrontendUnknownLanguage() {
|
||||||
|
@ -104,10 +315,108 @@ func (suite *InternalToFrontendTestSuite) TestStatusToFrontendUnknownLanguage()
|
||||||
apiStatus, err := suite.typeconverter.StatusToAPIStatus(context.Background(), testStatus, requestingAccount)
|
apiStatus, err := suite.typeconverter.StatusToAPIStatus(context.Background(), testStatus, requestingAccount)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
b, err := json.Marshal(apiStatus)
|
b, err := json.MarshalIndent(apiStatus, "", " ")
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
suite.Equal(`{"id":"01F8MH75CBF9JFX4ZAD54N0W0R","created_at":"2021-10-20T11:36:45.000Z","in_reply_to_id":null,"in_reply_to_account_id":null,"sensitive":false,"spoiler_text":"","visibility":"public","language":null,"uri":"http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R","url":"http://localhost:8080/@admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R","replies_count":0,"reblogs_count":0,"favourites_count":1,"favourited":true,"reblogged":false,"muted":false,"bookmarked":true,"pinned":false,"content":"hello world! #welcome ! first post on the instance :rainbow: !","reblog":null,"application":{"name":"superseriousbusiness","website":"https://superserious.business"},"account":{"id":"01F8MH17FWEB39HZJ76B6VXSKF","username":"admin","acct":"admin","display_name":"","locked":false,"bot":false,"created_at":"2022-05-17T13:10:59.000Z","note":"","url":"http://localhost:8080/@admin","avatar":"","avatar_static":"","header":"http://localhost:8080/assets/default_header.png","header_static":"http://localhost:8080/assets/default_header.png","followers_count":1,"following_count":1,"statuses_count":4,"last_status_at":"2021-10-20T10:41:37.000Z","emojis":[],"fields":[],"enable_rss":true,"role":"admin"},"media_attachments":[{"id":"01F8MH6NEM8D7527KZAECTCR76","type":"image","url":"http://localhost:8080/fileserver/01F8MH17FWEB39HZJ76B6VXSKF/attachment/original/01F8MH6NEM8D7527KZAECTCR76.jpg","text_url":"http://localhost:8080/fileserver/01F8MH17FWEB39HZJ76B6VXSKF/attachment/original/01F8MH6NEM8D7527KZAECTCR76.jpg","preview_url":"http://localhost:8080/fileserver/01F8MH17FWEB39HZJ76B6VXSKF/attachment/small/01F8MH6NEM8D7527KZAECTCR76.jpg","remote_url":null,"preview_remote_url":null,"meta":{"original":{"width":1200,"height":630,"size":"1200x630","aspect":1.9047619},"small":{"width":256,"height":134,"size":"256x134","aspect":1.9104477},"focus":{"x":0,"y":0}},"description":"Black and white image of some 50's style text saying: Welcome On Board","blurhash":"LNJRdVM{00Rj%Mayt7j[4nWBofRj"}],"mentions":[],"tags":[{"name":"welcome","url":"http://localhost:8080/tags/welcome"}],"emojis":[{"shortcode":"rainbow","url":"http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01F8MH9H8E4VG3KDYJR9EGPXCQ.png","static_url":"http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/static/01F8MH9H8E4VG3KDYJR9EGPXCQ.png","visible_in_picker":true,"category":"reactions"}],"card":null,"poll":null,"text":"hello world! #welcome ! first post on the instance :rainbow: !"}`, string(b))
|
suite.Equal(`{
|
||||||
|
"id": "01F8MH75CBF9JFX4ZAD54N0W0R",
|
||||||
|
"created_at": "2021-10-20T11:36:45.000Z",
|
||||||
|
"in_reply_to_id": null,
|
||||||
|
"in_reply_to_account_id": null,
|
||||||
|
"sensitive": false,
|
||||||
|
"spoiler_text": "",
|
||||||
|
"visibility": "public",
|
||||||
|
"language": null,
|
||||||
|
"uri": "http://localhost:8080/users/admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R",
|
||||||
|
"url": "http://localhost:8080/@admin/statuses/01F8MH75CBF9JFX4ZAD54N0W0R",
|
||||||
|
"replies_count": 0,
|
||||||
|
"reblogs_count": 0,
|
||||||
|
"favourites_count": 1,
|
||||||
|
"favourited": true,
|
||||||
|
"reblogged": false,
|
||||||
|
"muted": false,
|
||||||
|
"bookmarked": true,
|
||||||
|
"pinned": false,
|
||||||
|
"content": "hello world! #welcome ! first post on the instance :rainbow: !",
|
||||||
|
"reblog": null,
|
||||||
|
"application": {
|
||||||
|
"name": "superseriousbusiness",
|
||||||
|
"website": "https://superserious.business"
|
||||||
|
},
|
||||||
|
"account": {
|
||||||
|
"id": "01F8MH17FWEB39HZJ76B6VXSKF",
|
||||||
|
"username": "admin",
|
||||||
|
"acct": "admin",
|
||||||
|
"display_name": "",
|
||||||
|
"locked": false,
|
||||||
|
"bot": false,
|
||||||
|
"created_at": "2022-05-17T13:10:59.000Z",
|
||||||
|
"note": "",
|
||||||
|
"url": "http://localhost:8080/@admin",
|
||||||
|
"avatar": "",
|
||||||
|
"avatar_static": "",
|
||||||
|
"header": "http://localhost:8080/assets/default_header.png",
|
||||||
|
"header_static": "http://localhost:8080/assets/default_header.png",
|
||||||
|
"followers_count": 1,
|
||||||
|
"following_count": 1,
|
||||||
|
"statuses_count": 4,
|
||||||
|
"last_status_at": "2021-10-20T10:41:37.000Z",
|
||||||
|
"emojis": [],
|
||||||
|
"fields": [],
|
||||||
|
"enable_rss": true,
|
||||||
|
"role": "admin"
|
||||||
|
},
|
||||||
|
"media_attachments": [
|
||||||
|
{
|
||||||
|
"id": "01F8MH6NEM8D7527KZAECTCR76",
|
||||||
|
"type": "image",
|
||||||
|
"url": "http://localhost:8080/fileserver/01F8MH17FWEB39HZJ76B6VXSKF/attachment/original/01F8MH6NEM8D7527KZAECTCR76.jpg",
|
||||||
|
"text_url": "http://localhost:8080/fileserver/01F8MH17FWEB39HZJ76B6VXSKF/attachment/original/01F8MH6NEM8D7527KZAECTCR76.jpg",
|
||||||
|
"preview_url": "http://localhost:8080/fileserver/01F8MH17FWEB39HZJ76B6VXSKF/attachment/small/01F8MH6NEM8D7527KZAECTCR76.jpg",
|
||||||
|
"remote_url": null,
|
||||||
|
"preview_remote_url": null,
|
||||||
|
"meta": {
|
||||||
|
"original": {
|
||||||
|
"width": 1200,
|
||||||
|
"height": 630,
|
||||||
|
"size": "1200x630",
|
||||||
|
"aspect": 1.9047619
|
||||||
|
},
|
||||||
|
"small": {
|
||||||
|
"width": 256,
|
||||||
|
"height": 134,
|
||||||
|
"size": "256x134",
|
||||||
|
"aspect": 1.9104477
|
||||||
|
},
|
||||||
|
"focus": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"description": "Black and white image of some 50's style text saying: Welcome On Board",
|
||||||
|
"blurhash": "LNJRdVM{00Rj%Mayt7j[4nWBofRj"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mentions": [],
|
||||||
|
"tags": [
|
||||||
|
{
|
||||||
|
"name": "welcome",
|
||||||
|
"url": "http://localhost:8080/tags/welcome"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"emojis": [
|
||||||
|
{
|
||||||
|
"shortcode": "rainbow",
|
||||||
|
"url": "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01F8MH9H8E4VG3KDYJR9EGPXCQ.png",
|
||||||
|
"static_url": "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/static/01F8MH9H8E4VG3KDYJR9EGPXCQ.png",
|
||||||
|
"visible_in_picker": true,
|
||||||
|
"category": "reactions"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"card": null,
|
||||||
|
"poll": null,
|
||||||
|
"text": "hello world! #welcome ! first post on the instance :rainbow: !"
|
||||||
|
}`, string(b))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InternalToFrontendTestSuite) TestVideoAttachmentToFrontend() {
|
func (suite *InternalToFrontendTestSuite) TestVideoAttachmentToFrontend() {
|
||||||
|
@ -115,10 +424,40 @@ func (suite *InternalToFrontendTestSuite) TestVideoAttachmentToFrontend() {
|
||||||
apiAttachment, err := suite.typeconverter.AttachmentToAPIAttachment(context.Background(), testAttachment)
|
apiAttachment, err := suite.typeconverter.AttachmentToAPIAttachment(context.Background(), testAttachment)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
b, err := json.Marshal(apiAttachment)
|
b, err := json.MarshalIndent(apiAttachment, "", " ")
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
suite.Equal(`{"id":"01CDR64G398ADCHXK08WWTHEZ5","type":"video","url":"http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/attachment/original/01CDR64G398ADCHXK08WWTHEZ5.mp4","text_url":"http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/attachment/original/01CDR64G398ADCHXK08WWTHEZ5.mp4","preview_url":"http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/attachment/small/01CDR64G398ADCHXK08WWTHEZ5.jpg","remote_url":null,"preview_remote_url":null,"meta":{"original":{"width":720,"height":404,"frame_rate":"30/1","duration":15.033334,"bitrate":1206522,"size":"720x404","aspect":1.7821782},"small":{"width":720,"height":404,"size":"720x404","aspect":1.7821782},"focus":{"x":0,"y":0}},"description":"A cow adorably licking another cow!"}`, string(b))
|
suite.Equal(`{
|
||||||
|
"id": "01CDR64G398ADCHXK08WWTHEZ5",
|
||||||
|
"type": "video",
|
||||||
|
"url": "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/attachment/original/01CDR64G398ADCHXK08WWTHEZ5.mp4",
|
||||||
|
"text_url": "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/attachment/original/01CDR64G398ADCHXK08WWTHEZ5.mp4",
|
||||||
|
"preview_url": "http://localhost:8080/fileserver/01F8MH1H7YV1Z7D2C8K2730QBF/attachment/small/01CDR64G398ADCHXK08WWTHEZ5.jpg",
|
||||||
|
"remote_url": null,
|
||||||
|
"preview_remote_url": null,
|
||||||
|
"meta": {
|
||||||
|
"original": {
|
||||||
|
"width": 720,
|
||||||
|
"height": 404,
|
||||||
|
"frame_rate": "30/1",
|
||||||
|
"duration": 15.033334,
|
||||||
|
"bitrate": 1206522,
|
||||||
|
"size": "720x404",
|
||||||
|
"aspect": 1.7821782
|
||||||
|
},
|
||||||
|
"small": {
|
||||||
|
"width": 720,
|
||||||
|
"height": 404,
|
||||||
|
"size": "720x404",
|
||||||
|
"aspect": 1.7821782
|
||||||
|
},
|
||||||
|
"focus": {
|
||||||
|
"x": 0,
|
||||||
|
"y": 0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"description": "A cow adorably licking another cow!"
|
||||||
|
}`, string(b))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InternalToFrontendTestSuite) TestInstanceToFrontend() {
|
func (suite *InternalToFrontendTestSuite) TestInstanceToFrontend() {
|
||||||
|
@ -137,10 +476,22 @@ func (suite *InternalToFrontendTestSuite) TestInstanceToFrontend() {
|
||||||
apiInstance, err := suite.typeconverter.InstanceToAPIInstance(context.Background(), testInstance)
|
apiInstance, err := suite.typeconverter.InstanceToAPIInstance(context.Background(), testInstance)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
b, err := json.Marshal(apiInstance)
|
b, err := json.MarshalIndent(apiInstance, "", " ")
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
suite.Equal(`{"uri":"https://example.org","title":"example instance","description":"a much longer description","short_description":"a little description","email":"someone@example.org","version":"software-from-hell 0.666","registrations":false,"approval_required":false,"invites_enabled":false,"thumbnail":"","max_toot_chars":0}`, string(b))
|
suite.Equal(`{
|
||||||
|
"uri": "https://example.org",
|
||||||
|
"title": "example instance",
|
||||||
|
"description": "a much longer description",
|
||||||
|
"short_description": "a little description",
|
||||||
|
"email": "someone@example.org",
|
||||||
|
"version": "software-from-hell 0.666",
|
||||||
|
"registrations": false,
|
||||||
|
"approval_required": false,
|
||||||
|
"invites_enabled": false,
|
||||||
|
"thumbnail": "",
|
||||||
|
"max_toot_chars": 0
|
||||||
|
}`, string(b))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InternalToFrontendTestSuite) TestInstanceToFrontendWithAdminAccount() {
|
func (suite *InternalToFrontendTestSuite) TestInstanceToFrontendWithAdminAccount() {
|
||||||
|
@ -160,40 +511,103 @@ func (suite *InternalToFrontendTestSuite) TestInstanceToFrontendWithAdminAccount
|
||||||
apiInstance, err := suite.typeconverter.InstanceToAPIInstance(context.Background(), testInstance)
|
apiInstance, err := suite.typeconverter.InstanceToAPIInstance(context.Background(), testInstance)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
b, err := json.Marshal(apiInstance)
|
b, err := json.MarshalIndent(apiInstance, "", " ")
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
suite.Equal(`{"uri":"https://example.org","title":"example instance","description":"a much longer description","short_description":"a little description","email":"someone@example.org","version":"software-from-hell 0.666","registrations":false,"approval_required":false,"invites_enabled":false,"thumbnail":"","contact_account":{"id":"01FHMQX3GAABWSM0S2VZEC2SWC","username":"Some_User","acct":"Some_User@example.org","display_name":"some user","locked":true,"bot":false,"created_at":"2020-08-10T12:13:28.000Z","note":"i'm a real son of a gun","url":"http://example.org/@Some_User","avatar":"","avatar_static":"","header":"http://localhost:8080/assets/default_header.png","header_static":"http://localhost:8080/assets/default_header.png","followers_count":0,"following_count":0,"statuses_count":0,"last_status_at":null,"emojis":[],"fields":[]},"max_toot_chars":0}`, string(b))
|
suite.Equal(`{
|
||||||
|
"uri": "https://example.org",
|
||||||
|
"title": "example instance",
|
||||||
|
"description": "a much longer description",
|
||||||
|
"short_description": "a little description",
|
||||||
|
"email": "someone@example.org",
|
||||||
|
"version": "software-from-hell 0.666",
|
||||||
|
"registrations": false,
|
||||||
|
"approval_required": false,
|
||||||
|
"invites_enabled": false,
|
||||||
|
"thumbnail": "",
|
||||||
|
"contact_account": {
|
||||||
|
"id": "01FHMQX3GAABWSM0S2VZEC2SWC",
|
||||||
|
"username": "Some_User",
|
||||||
|
"acct": "Some_User@example.org",
|
||||||
|
"display_name": "some user",
|
||||||
|
"locked": true,
|
||||||
|
"bot": false,
|
||||||
|
"created_at": "2020-08-10T12:13:28.000Z",
|
||||||
|
"note": "i'm a real son of a gun",
|
||||||
|
"url": "http://example.org/@Some_User",
|
||||||
|
"avatar": "",
|
||||||
|
"avatar_static": "",
|
||||||
|
"header": "http://localhost:8080/assets/default_header.png",
|
||||||
|
"header_static": "http://localhost:8080/assets/default_header.png",
|
||||||
|
"followers_count": 0,
|
||||||
|
"following_count": 0,
|
||||||
|
"statuses_count": 0,
|
||||||
|
"last_status_at": null,
|
||||||
|
"emojis": [],
|
||||||
|
"fields": []
|
||||||
|
},
|
||||||
|
"max_toot_chars": 0
|
||||||
|
}`, string(b))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InternalToFrontendTestSuite) TestEmojiToFrontend() {
|
func (suite *InternalToFrontendTestSuite) TestEmojiToFrontend() {
|
||||||
emoji, err := suite.typeconverter.EmojiToAPIEmoji(context.Background(), suite.testEmojis["rainbow"])
|
emoji, err := suite.typeconverter.EmojiToAPIEmoji(context.Background(), suite.testEmojis["rainbow"])
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
b, err := json.Marshal(emoji)
|
b, err := json.MarshalIndent(emoji, "", " ")
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
suite.Equal(`{"shortcode":"rainbow","url":"http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01F8MH9H8E4VG3KDYJR9EGPXCQ.png","static_url":"http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/static/01F8MH9H8E4VG3KDYJR9EGPXCQ.png","visible_in_picker":true,"category":"reactions"}`, string(b))
|
suite.Equal(`{
|
||||||
|
"shortcode": "rainbow",
|
||||||
|
"url": "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01F8MH9H8E4VG3KDYJR9EGPXCQ.png",
|
||||||
|
"static_url": "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/static/01F8MH9H8E4VG3KDYJR9EGPXCQ.png",
|
||||||
|
"visible_in_picker": true,
|
||||||
|
"category": "reactions"
|
||||||
|
}`, string(b))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InternalToFrontendTestSuite) TestEmojiToFrontendAdmin1() {
|
func (suite *InternalToFrontendTestSuite) TestEmojiToFrontendAdmin1() {
|
||||||
emoji, err := suite.typeconverter.EmojiToAdminAPIEmoji(context.Background(), suite.testEmojis["rainbow"])
|
emoji, err := suite.typeconverter.EmojiToAdminAPIEmoji(context.Background(), suite.testEmojis["rainbow"])
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
b, err := json.Marshal(emoji)
|
b, err := json.MarshalIndent(emoji, "", " ")
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
suite.Equal(`{"shortcode":"rainbow","url":"http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01F8MH9H8E4VG3KDYJR9EGPXCQ.png","static_url":"http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/static/01F8MH9H8E4VG3KDYJR9EGPXCQ.png","visible_in_picker":true,"category":"reactions","id":"01F8MH9H8E4VG3KDYJR9EGPXCQ","disabled":false,"updated_at":"2021-09-20T10:40:37.000Z","total_file_size":47115,"content_type":"image/png","uri":"http://localhost:8080/emoji/01F8MH9H8E4VG3KDYJR9EGPXCQ"}`, string(b))
|
suite.Equal(`{
|
||||||
|
"shortcode": "rainbow",
|
||||||
|
"url": "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01F8MH9H8E4VG3KDYJR9EGPXCQ.png",
|
||||||
|
"static_url": "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/static/01F8MH9H8E4VG3KDYJR9EGPXCQ.png",
|
||||||
|
"visible_in_picker": true,
|
||||||
|
"category": "reactions",
|
||||||
|
"id": "01F8MH9H8E4VG3KDYJR9EGPXCQ",
|
||||||
|
"disabled": false,
|
||||||
|
"updated_at": "2021-09-20T10:40:37.000Z",
|
||||||
|
"total_file_size": 47115,
|
||||||
|
"content_type": "image/png",
|
||||||
|
"uri": "http://localhost:8080/emoji/01F8MH9H8E4VG3KDYJR9EGPXCQ"
|
||||||
|
}`, string(b))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *InternalToFrontendTestSuite) TestEmojiToFrontendAdmin2() {
|
func (suite *InternalToFrontendTestSuite) TestEmojiToFrontendAdmin2() {
|
||||||
emoji, err := suite.typeconverter.EmojiToAdminAPIEmoji(context.Background(), suite.testEmojis["yell"])
|
emoji, err := suite.typeconverter.EmojiToAdminAPIEmoji(context.Background(), suite.testEmojis["yell"])
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
b, err := json.Marshal(emoji)
|
b, err := json.MarshalIndent(emoji, "", " ")
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
suite.Equal(`{"shortcode":"yell","url":"http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01GD5KP5CQEE1R3X43Y1EHS2CW.png","static_url":"http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/static/01GD5KP5CQEE1R3X43Y1EHS2CW.png","visible_in_picker":false,"id":"01GD5KP5CQEE1R3X43Y1EHS2CW","disabled":false,"domain":"fossbros-anonymous.io","updated_at":"2020-03-18T12:12:00.000Z","total_file_size":21697,"content_type":"image/png","uri":"http://fossbros-anonymous.io/emoji/01GD5KP5CQEE1R3X43Y1EHS2CW"}`, string(b))
|
suite.Equal(`{
|
||||||
|
"shortcode": "yell",
|
||||||
|
"url": "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/original/01GD5KP5CQEE1R3X43Y1EHS2CW.png",
|
||||||
|
"static_url": "http://localhost:8080/fileserver/01AY6P665V14JJR0AFVRT7311Y/emoji/static/01GD5KP5CQEE1R3X43Y1EHS2CW.png",
|
||||||
|
"visible_in_picker": false,
|
||||||
|
"id": "01GD5KP5CQEE1R3X43Y1EHS2CW",
|
||||||
|
"disabled": false,
|
||||||
|
"domain": "fossbros-anonymous.io",
|
||||||
|
"updated_at": "2020-03-18T12:12:00.000Z",
|
||||||
|
"total_file_size": 21697,
|
||||||
|
"content_type": "image/png",
|
||||||
|
"uri": "http://fossbros-anonymous.io/emoji/01GD5KP5CQEE1R3X43Y1EHS2CW"
|
||||||
|
}`, string(b))
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestInternalToFrontendTestSuite(t *testing.T) {
|
func TestInternalToFrontendTestSuite(t *testing.T) {
|
||||||
|
|
|
@ -44,10 +44,19 @@ func (suite *WrapTestSuite) TestWrapNoteInCreateIRIOnly() {
|
||||||
createI, err := streams.Serialize(create)
|
createI, err := streams.Serialize(create)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
bytes, err := json.Marshal(createI)
|
bytes, err := json.MarshalIndent(createI, "", " ")
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
suite.Equal(`{"@context":"https://www.w3.org/ns/activitystreams","actor":"http://localhost:8080/users/the_mighty_zork","cc":"http://localhost:8080/users/the_mighty_zork/followers","id":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/activity","object":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY","published":"2021-10-20T12:40:37+02:00","to":"https://www.w3.org/ns/activitystreams#Public","type":"Create"}`, string(bytes))
|
suite.Equal(`{
|
||||||
|
"@context": "https://www.w3.org/ns/activitystreams",
|
||||||
|
"actor": "http://localhost:8080/users/the_mighty_zork",
|
||||||
|
"cc": "http://localhost:8080/users/the_mighty_zork/followers",
|
||||||
|
"id": "http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/activity",
|
||||||
|
"object": "http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY",
|
||||||
|
"published": "2021-10-20T12:40:37+02:00",
|
||||||
|
"to": "https://www.w3.org/ns/activitystreams#Public",
|
||||||
|
"type": "Create"
|
||||||
|
}`, string(bytes))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *WrapTestSuite) TestWrapNoteInCreate() {
|
func (suite *WrapTestSuite) TestWrapNoteInCreate() {
|
||||||
|
@ -63,10 +72,42 @@ func (suite *WrapTestSuite) TestWrapNoteInCreate() {
|
||||||
createI, err := streams.Serialize(create)
|
createI, err := streams.Serialize(create)
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
bytes, err := json.Marshal(createI)
|
bytes, err := json.MarshalIndent(createI, "", " ")
|
||||||
suite.NoError(err)
|
suite.NoError(err)
|
||||||
|
|
||||||
suite.Equal(`{"@context":"https://www.w3.org/ns/activitystreams","actor":"http://localhost:8080/users/the_mighty_zork","cc":"http://localhost:8080/users/the_mighty_zork/followers","id":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/activity","object":{"attachment":[],"attributedTo":"http://localhost:8080/users/the_mighty_zork","cc":"http://localhost:8080/users/the_mighty_zork/followers","content":"hello everyone!","id":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY","published":"2021-10-20T12:40:37+02:00","replies":{"first":{"id":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/replies?page=true","next":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/replies?only_other_accounts=false\u0026page=true","partOf":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/replies","type":"CollectionPage"},"id":"http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/replies","type":"Collection"},"sensitive":true,"summary":"introduction post","tag":[],"to":"https://www.w3.org/ns/activitystreams#Public","type":"Note","url":"http://localhost:8080/@the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY"},"published":"2021-10-20T12:40:37+02:00","to":"https://www.w3.org/ns/activitystreams#Public","type":"Create"}`, string(bytes))
|
suite.Equal(`{
|
||||||
|
"@context": "https://www.w3.org/ns/activitystreams",
|
||||||
|
"actor": "http://localhost:8080/users/the_mighty_zork",
|
||||||
|
"cc": "http://localhost:8080/users/the_mighty_zork/followers",
|
||||||
|
"id": "http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/activity",
|
||||||
|
"object": {
|
||||||
|
"attachment": [],
|
||||||
|
"attributedTo": "http://localhost:8080/users/the_mighty_zork",
|
||||||
|
"cc": "http://localhost:8080/users/the_mighty_zork/followers",
|
||||||
|
"content": "hello everyone!",
|
||||||
|
"id": "http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY",
|
||||||
|
"published": "2021-10-20T12:40:37+02:00",
|
||||||
|
"replies": {
|
||||||
|
"first": {
|
||||||
|
"id": "http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/replies?page=true",
|
||||||
|
"next": "http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/replies?only_other_accounts=false\u0026page=true",
|
||||||
|
"partOf": "http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/replies",
|
||||||
|
"type": "CollectionPage"
|
||||||
|
},
|
||||||
|
"id": "http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/replies",
|
||||||
|
"type": "Collection"
|
||||||
|
},
|
||||||
|
"sensitive": true,
|
||||||
|
"summary": "introduction post",
|
||||||
|
"tag": [],
|
||||||
|
"to": "https://www.w3.org/ns/activitystreams#Public",
|
||||||
|
"type": "Note",
|
||||||
|
"url": "http://localhost:8080/@the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY"
|
||||||
|
},
|
||||||
|
"published": "2021-10-20T12:40:37+02:00",
|
||||||
|
"to": "https://www.w3.org/ns/activitystreams#Public",
|
||||||
|
"type": "Create"
|
||||||
|
}`, string(bytes))
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestWrapTestSuite(t *testing.T) {
|
func TestWrapTestSuite(t *testing.T) {
|
||||||
|
|
Loading…
Reference in a new issue