summaryrefslogtreecommitdiff
path: root/internal/processing/status/create_test.go
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2024-02-19 11:50:49 +0100
committerLibravatar GitHub <noreply@github.com>2024-02-19 11:50:49 +0100
commit0554550acb7811a6dcb3692ecab8bd4218697824 (patch)
tree9effbc3325a1f3cadfaa4062b4d19092b57f2bb9 /internal/processing/status/create_test.go
parent[chore]: Bump github.com/jackc/pgx/v5 from 5.5.2 to 5.5.3 (#2664) (diff)
downloadgotosocial-0554550acb7811a6dcb3692ecab8bd4218697824.tar.xz
[bugfix] Ensure local statuses always get a threadID so they can be muted (#2665)
* [chore/bugfix] Ensure threadID always set on local statuses * test
Diffstat (limited to 'internal/processing/status/create_test.go')
-rw-r--r--internal/processing/status/create_test.go44
1 files changed, 44 insertions, 0 deletions
diff --git a/internal/processing/status/create_test.go b/internal/processing/status/create_test.go
index 8d4267585..e32d8bc52 100644
--- a/internal/processing/status/create_test.go
+++ b/internal/processing/status/create_test.go
@@ -242,6 +242,50 @@ func (suite *StatusCreateTestSuite) TestProcessLanguageWithScriptPart() {
suite.Equal("zh-Hans", *apiStatus.Language)
}
+func (suite *StatusCreateTestSuite) TestProcessReplyToUnthreadedRemoteStatus() {
+ ctx := context.Background()
+
+ creatingAccount := suite.testAccounts["local_account_1"]
+ creatingApplication := suite.testApplications["application_1"]
+ inReplyTo := suite.testStatuses["remote_account_1_status_1"]
+
+ // Reply to a remote status that
+ // doesn't have a threadID set on it.
+ statusCreateForm := &apimodel.AdvancedStatusCreateForm{
+ StatusCreateRequest: apimodel.StatusCreateRequest{
+ Status: "boobies",
+ MediaIDs: []string{},
+ Poll: nil,
+ InReplyToID: inReplyTo.ID,
+ Sensitive: false,
+ SpoilerText: "this is a reply",
+ Visibility: apimodel.VisibilityPublic,
+ ScheduledAt: "",
+ Language: "en",
+ ContentType: apimodel.StatusContentTypePlain,
+ },
+ AdvancedVisibilityFlagsForm: apimodel.AdvancedVisibilityFlagsForm{
+ Federated: nil,
+ Boostable: nil,
+ Replyable: nil,
+ Likeable: nil,
+ },
+ }
+
+ apiStatus, err := suite.status.Create(ctx, creatingAccount, creatingApplication, statusCreateForm)
+ suite.NoError(err)
+ suite.NotNil(apiStatus)
+
+ // ThreadID should be set on the status,
+ // even though the replied-to status does
+ // not have a threadID.
+ dbStatus, dbErr := suite.state.DB.GetStatusByID(ctx, apiStatus.ID)
+ if dbErr != nil {
+ suite.FailNow(err.Error())
+ }
+ suite.NotEmpty(dbStatus.ThreadID)
+}
+
func TestStatusCreateTestSuite(t *testing.T) {
suite.Run(t, new(StatusCreateTestSuite))
}