[feature] User muting (#2960)

* User muting

* Address review feedback

* Rename uniqueness constraint on user_mutes to match convention

* Remove unused account_id from where clause

* Add UserMute to NewTestDB

* Update test/envparsing.sh with new and fixed cache stuff

* Address tobi's review comments

* Make compiledUserMuteListEntry.expired consistent with UserMute.Expired

* Make sure mute_expires_at is serialized as an explicit null for indefinite mutes

---------

Co-authored-by: tobi <tobi.smethurst@protonmail.com>
This commit is contained in:
Vyr Cossont 2024-06-06 09:38:02 -07:00 committed by GitHub
commit 5e2d4fdb19
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
47 changed files with 2346 additions and 53 deletions

View file

@ -510,6 +510,43 @@ func (suite *RelationshipTestSuite) TestDeleteAccountBlocks() {
suite.Nil(block)
}
func (suite *RelationshipTestSuite) TestDeleteAccountMutes() {
ctx := context.Background()
// Add a mute.
accountID1 := suite.testAccounts["local_account_1"].ID
accountID2 := suite.testAccounts["local_account_2"].ID
muteID := "01HZGZ3F3C7S1TTPE8F9VPZDCB"
err := suite.db.PutMute(ctx, &gtsmodel.UserMute{
ID: muteID,
AccountID: accountID1,
TargetAccountID: accountID2,
})
if err != nil {
suite.FailNow(err.Error())
}
// Make sure the mute is in the DB.
mute, err := suite.db.GetMute(ctx, accountID1, accountID2)
if err != nil {
suite.FailNow(err.Error())
}
if suite.NotNil(mute) {
suite.Equal(muteID, mute.ID)
}
// Delete all mutes owned by that account.
err = suite.db.DeleteAccountMutes(ctx, accountID1)
if err != nil {
suite.FailNow(err.Error())
}
// Mute should be gone.
mute, err = suite.db.GetMute(ctx, accountID1, accountID2)
suite.ErrorIs(err, db.ErrNoEntries)
suite.Nil(mute)
}
func (suite *RelationshipTestSuite) TestGetRelationship() {
requestingAccount := suite.testAccounts["local_account_1"]
targetAccount := suite.testAccounts["admin_account"]