summaryrefslogtreecommitdiff
path: root/internal/processing/fromfederator_test.go
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2021-09-14 12:23:56 +0200
committerLibravatar GitHub <noreply@github.com>2021-09-14 12:23:56 +0200
commit2e5dcc2929d6e6b22f370bf1b83c54d03ac1cd43 (patch)
tree3d3ce087220f8eb120e9fb132731fd30987d9922 /internal/processing/fromfederator_test.go
parentadd ap logo to readme (#228) (diff)
downloadgotosocial-2e5dcc2929d6e6b22f370bf1b83c54d03ac1cd43.tar.xz
Fix mentions not notifying (#230)
* set default privacy for new accounts * teshts * found it * tiny change * aaaa
Diffstat (limited to 'internal/processing/fromfederator_test.go')
-rw-r--r--internal/processing/fromfederator_test.go70
1 files changed, 70 insertions, 0 deletions
diff --git a/internal/processing/fromfederator_test.go b/internal/processing/fromfederator_test.go
index 598af5337..c58334787 100644
--- a/internal/processing/fromfederator_test.go
+++ b/internal/processing/fromfederator_test.go
@@ -27,6 +27,7 @@ import (
"github.com/superseriousbusiness/gotosocial/internal/ap"
"github.com/superseriousbusiness/gotosocial/internal/db"
"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
+ "github.com/superseriousbusiness/gotosocial/internal/id"
"github.com/superseriousbusiness/gotosocial/internal/messages"
)
@@ -81,6 +82,75 @@ func (suite *FromFederatorTestSuite) TestProcessFederationAnnounce() {
suite.False(notif.Read)
}
+func (suite *FromFederatorTestSuite) TestProcessReplyMention() {
+ repliedAccount := suite.testAccounts["local_account_1"]
+ repliedStatus := suite.testStatuses["local_account_1_status_1"]
+ replyingAccount := suite.testAccounts["remote_account_1"]
+ replyingStatus := &gtsmodel.Status{
+ CreatedAt: time.Now(),
+ UpdatedAt: time.Now(),
+ URI: "http://fossbros-anonymous.io/users/foss_satan/statuses/106221634728637552",
+ URL: "http://fossbros-anonymous.io/@foss_satan/106221634728637552",
+ Content: `<p><span class="h-card"><a href="http://localhost:8080/@the_mighty_zork" class="u-url mention">@<span>the_mighty_zork</span></a></span> nice there it is:</p><p><a href="http://localhost:8080/users/the_mighty_zork/statuses/01F8MHAMCHF6Y650WCRSCP4WMY/activity" rel="nofollow noopener noreferrer" target="_blank"><span class="invisible">https://</span><span class="ellipsis">social.pixie.town/users/f0x/st</span><span class="invisible">atuses/106221628567855262/activity</span></a></p>`,
+ Mentions: []*gtsmodel.Mention{
+ {
+ TargetAccountURI: repliedAccount.URI,
+ NameString: "@the_mighty_zork@localhost:8080",
+ },
+ },
+ AccountID: replyingAccount.ID,
+ AccountURI: replyingAccount.URI,
+ InReplyToID: repliedStatus.ID,
+ InReplyToURI: repliedStatus.URI,
+ InReplyToAccountID: repliedAccount.ID,
+ Visibility: gtsmodel.VisibilityUnlocked,
+ ActivityStreamsType: ap.ObjectNote,
+ Federated: true,
+ Boostable: true,
+ Replyable: true,
+ Likeable: true,
+ }
+
+ // id the status based on the time it was created
+ statusID, err := id.NewULIDFromTime(replyingStatus.CreatedAt)
+ suite.NoError(err)
+ replyingStatus.ID = statusID
+
+ err = suite.db.PutStatus(context.Background(), replyingStatus)
+ suite.NoError(err)
+
+ err = suite.processor.ProcessFromFederator(context.Background(), messages.FromFederator{
+ APObjectType: ap.ObjectNote,
+ APActivityType: ap.ActivityCreate,
+ GTSModel: replyingStatus,
+ ReceivingAccount: suite.testAccounts["local_account_1"],
+ })
+ suite.NoError(err)
+
+ // side effects should be triggered
+ // 1. status should be in the database
+ suite.NotEmpty(replyingStatus.ID)
+ _, err = suite.db.GetStatusByID(context.Background(), replyingStatus.ID)
+ suite.NoError(err)
+
+ // 2. a notification should exist for the mention
+ where := []db.Where{
+ {
+ Key: "status_id",
+ Value: replyingStatus.ID,
+ },
+ }
+
+ notif := &gtsmodel.Notification{}
+ err = suite.db.GetWhere(context.Background(), where, notif)
+ suite.NoError(err)
+ suite.Equal(gtsmodel.NotificationMention, notif.NotificationType)
+ suite.Equal(replyingStatus.InReplyToAccountID, notif.TargetAccountID)
+ suite.Equal(replyingStatus.AccountID, notif.OriginAccountID)
+ suite.Equal(replyingStatus.ID, notif.StatusID)
+ suite.False(notif.Read)
+}
+
func TestFromFederatorTestSuite(t *testing.T) {
suite.Run(t, &FromFederatorTestSuite{})
}