|
|
@@ -152,6 +152,23 @@ func TestTeamCommandsAndQueries(t *testing.T) {
|
|
|
So(len(q2.Result), ShouldEqual, 0)
|
|
|
})
|
|
|
|
|
|
+ Convey("When ProtectLastAdmin is set to true", func() {
|
|
|
+ err = AddTeamMember(&m.AddTeamMemberCommand{OrgId: testOrgId, TeamId: group1.Result.Id, UserId: userIds[0], Permission: int64(m.PERMISSION_ADMIN)})
|
|
|
+ So(err, ShouldBeNil)
|
|
|
+
|
|
|
+ Convey("A user should not be able to remove the last admin", func() {
|
|
|
+ err = RemoveTeamMember(&m.RemoveTeamMemberCommand{OrgId: testOrgId, TeamId: group1.Result.Id, UserId: userIds[0], ProtectLastAdmin: true})
|
|
|
+ So(err, ShouldEqual, m.ErrLastTeamAdmin)
|
|
|
+ })
|
|
|
+
|
|
|
+ Convey("A user should be able to remove an admin if there are other admins", func() {
|
|
|
+ err = AddTeamMember(&m.AddTeamMemberCommand{OrgId: testOrgId, TeamId: group1.Result.Id, UserId: userIds[1], Permission: int64(m.PERMISSION_ADMIN)})
|
|
|
+ err = RemoveTeamMember(&m.RemoveTeamMemberCommand{OrgId: testOrgId, TeamId: group1.Result.Id, UserId: userIds[0], ProtectLastAdmin: true})
|
|
|
+ So(err, ShouldEqual, nil)
|
|
|
+ })
|
|
|
+
|
|
|
+ })
|
|
|
+
|
|
|
Convey("Should be able to remove a group with users and permissions", func() {
|
|
|
groupId := group2.Result.Id
|
|
|
err := AddTeamMember(&m.AddTeamMemberCommand{OrgId: testOrgId, TeamId: groupId, UserId: userIds[1]})
|