summaryrefslogtreecommitdiff
path: root/internal/typeutils/internaltofrontend_test.go
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2024-02-20 18:50:54 +0100
committerLibravatar GitHub <noreply@github.com>2024-02-20 17:50:54 +0000
commit8cafa6b74b81fd8f0e5730007acdabd4c4e98944 (patch)
treebdea20d2bf47ed76c95b3f98e735d87112cc1e95 /internal/typeutils/internaltofrontend_test.go
parent[bugfix] use start + end line in regex when validating emoji via API (#2671) (diff)
downloadgotosocial-8cafa6b74b81fd8f0e5730007acdabd4c4e98944.tar.xz
[feature] Add `requested_by` to relationship model (#2672)
* [feature] Add `requested_by` to relationship model * whoops, missed some tests
Diffstat (limited to 'internal/typeutils/internaltofrontend_test.go')
-rw-r--r--internal/typeutils/internaltofrontend_test.go88
1 files changed, 88 insertions, 0 deletions
diff --git a/internal/typeutils/internaltofrontend_test.go b/internal/typeutils/internaltofrontend_test.go
index c99099445..9003dcca3 100644
--- a/internal/typeutils/internaltofrontend_test.go
+++ b/internal/typeutils/internaltofrontend_test.go
@@ -1967,6 +1967,94 @@ func (suite *InternalToFrontendTestSuite) TestAdminReportToFrontendSuspendedLoca
}`, string(b))
}
+func (suite *InternalToFrontendTestSuite) TestRelationshipFollowRequested() {
+ var (
+ ctx = context.Background()
+ account1 = suite.testAccounts["admin_account"]
+ account2 = suite.testAccounts["local_account_2"]
+ )
+
+ // Put a follow request in the db from
+ // admin account targeting local_account_2.
+ followRequest := &gtsmodel.FollowRequest{
+ ID: "01GEF753FWHCHRDWR0QEHBXM8W",
+ URI: "http://localhost:8080/weeeeeeeeeeeeeeeee",
+ AccountID: account1.ID,
+ TargetAccountID: account2.ID,
+ }
+ if err := suite.db.PutFollowRequest(ctx, followRequest); err != nil {
+ suite.FailNow(err.Error())
+ }
+
+ // Fetch the relationship from the database.
+ dbRelationship, err := suite.state.DB.GetRelationship(ctx, account1.ID, account2.ID)
+ if err != nil {
+ suite.FailNow(err.Error())
+ }
+
+ // Check API model is set appropriately.
+ relationship, err := suite.typeconverter.RelationshipToAPIRelationship(ctx, dbRelationship)
+ if err != nil {
+ suite.FailNow(err.Error())
+ }
+
+ b, err := json.MarshalIndent(relationship, "", " ")
+ if err != nil {
+ suite.FailNow(err.Error())
+ }
+
+ suite.Equal(`{
+ "id": "01F8MH5NBDF2MV7CTC4Q5128HF",
+ "following": false,
+ "showing_reblogs": false,
+ "notifying": false,
+ "followed_by": false,
+ "blocking": false,
+ "blocked_by": false,
+ "muting": false,
+ "muting_notifications": false,
+ "requested": true,
+ "requested_by": false,
+ "domain_blocking": false,
+ "endorsed": false,
+ "note": ""
+}`, string(b))
+
+ // Check relationship from the other side too.
+ dbRelationship, err = suite.state.DB.GetRelationship(ctx, account2.ID, account1.ID)
+ if err != nil {
+ suite.FailNow(err.Error())
+ }
+
+ // Check API model is set appropriately.
+ relationship, err = suite.typeconverter.RelationshipToAPIRelationship(ctx, dbRelationship)
+ if err != nil {
+ suite.FailNow(err.Error())
+ }
+
+ b, err = json.MarshalIndent(relationship, "", " ")
+ if err != nil {
+ suite.FailNow(err.Error())
+ }
+
+ suite.Equal(`{
+ "id": "01F8MH17FWEB39HZJ76B6VXSKF",
+ "following": false,
+ "showing_reblogs": false,
+ "notifying": false,
+ "followed_by": false,
+ "blocking": false,
+ "blocked_by": false,
+ "muting": false,
+ "muting_notifications": false,
+ "requested": false,
+ "requested_by": true,
+ "domain_blocking": false,
+ "endorsed": false,
+ "note": ""
+}`, string(b))
+}
+
func TestInternalToFrontendTestSuite(t *testing.T) {
suite.Run(t, new(InternalToFrontendTestSuite))
}