summaryrefslogtreecommitdiff
path: root/internal/db/bundb/instance_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/db/bundb/instance_test.go')
-rw-r--r--internal/db/bundb/instance_test.go38
1 files changed, 38 insertions, 0 deletions
diff --git a/internal/db/bundb/instance_test.go b/internal/db/bundb/instance_test.go
index 4269df5ca..580a7699b 100644
--- a/internal/db/bundb/instance_test.go
+++ b/internal/db/bundb/instance_test.go
@@ -24,6 +24,8 @@ import (
"github.com/stretchr/testify/suite"
"github.com/superseriousbusiness/gotosocial/internal/config"
"github.com/superseriousbusiness/gotosocial/internal/db"
+ "github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
+ "github.com/superseriousbusiness/gotosocial/testrig"
)
type InstanceTestSuite struct {
@@ -90,6 +92,42 @@ func (suite *InstanceTestSuite) TestGetInstanceAccounts() {
suite.Len(accounts, 1)
}
+func (suite *InstanceTestSuite) TestGetInstanceModeratorAddressesOK() {
+ // We have one admin user by default.
+ addresses, err := suite.db.GetInstanceModeratorAddresses(context.Background())
+ suite.NoError(err)
+ suite.EqualValues([]string{"admin@example.org"}, addresses)
+}
+
+func (suite *InstanceTestSuite) TestGetInstanceModeratorAddressesZorkAsModerator() {
+ // Promote zork to moderator role.
+ testUser := &gtsmodel.User{}
+ *testUser = *suite.testUsers["local_account_1"]
+ testUser.Moderator = testrig.TrueBool()
+ if err := suite.db.UpdateUser(context.Background(), testUser, "moderator"); err != nil {
+ suite.FailNow(err.Error())
+ }
+
+ addresses, err := suite.db.GetInstanceModeratorAddresses(context.Background())
+ suite.NoError(err)
+ suite.EqualValues([]string{"admin@example.org", "zork@example.org"}, addresses)
+}
+
+func (suite *InstanceTestSuite) TestGetInstanceModeratorAddressesNoAdmin() {
+ // Demote admin from admin + moderator roles.
+ testUser := &gtsmodel.User{}
+ *testUser = *suite.testUsers["admin_account"]
+ testUser.Admin = testrig.FalseBool()
+ testUser.Moderator = testrig.FalseBool()
+ if err := suite.db.UpdateUser(context.Background(), testUser, "admin", "moderator"); err != nil {
+ suite.FailNow(err.Error())
+ }
+
+ addresses, err := suite.db.GetInstanceModeratorAddresses(context.Background())
+ suite.ErrorIs(err, db.ErrNoEntries)
+ suite.Empty(addresses)
+}
+
func TestInstanceTestSuite(t *testing.T) {
suite.Run(t, new(InstanceTestSuite))
}