Skip to content

Commit c359d9f

Browse files
committed
More tests
1 parent 4a530ae commit c359d9f

File tree

2 files changed

+61
-3
lines changed

2 files changed

+61
-3
lines changed

coderd/users.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -692,7 +692,7 @@ func (api *API) putUserStatus(status database.UserStatus) func(rw http.ResponseW
692692
}
693693
}
694694

695-
suspendedUser, err := api.Database.UpdateUserStatus(ctx, database.UpdateUserStatusParams{
695+
updatedUser, err := api.Database.UpdateUserStatus(ctx, database.UpdateUserStatusParams{
696696
ID: user.ID,
697697
Status: status,
698698
UpdatedAt: database.Now(),
@@ -704,7 +704,7 @@ func (api *API) putUserStatus(status database.UserStatus) func(rw http.ResponseW
704704
})
705705
return
706706
}
707-
aReq.New = suspendedUser
707+
aReq.New = updatedUser
708708

709709
organizations, err := userOrganizationIDs(ctx, api, user)
710710
if err != nil {
@@ -721,7 +721,7 @@ func (api *API) putUserStatus(status database.UserStatus) func(rw http.ResponseW
721721
// don't fail the HTTP request, since we did write it successfully to the database
722722
}
723723

724-
httpapi.Write(ctx, rw, http.StatusOK, db2sdk.User(suspendedUser, organizations))
724+
httpapi.Write(ctx, rw, http.StatusOK, db2sdk.User(updatedUser, organizations))
725725
}
726726
}
727727

coderd/users_test.go

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1048,6 +1048,64 @@ func TestPutUserSuspend(t *testing.T) {
10481048
})
10491049
}
10501050

1051+
func TestPutUserDormant(t *testing.T) {
1052+
t.Parallel()
1053+
1054+
t.Run("MarkOwnerAsDormant", func(t *testing.T) {
1055+
t.Parallel()
1056+
client := coderdtest.New(t, nil)
1057+
me := coderdtest.CreateFirstUser(t, client)
1058+
_, user := coderdtest.CreateAnotherUser(t, client, me.OrganizationID, rbac.RoleOwner())
1059+
1060+
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
1061+
defer cancel()
1062+
1063+
_, err := client.UpdateUserStatus(ctx, user.Username, codersdk.UserStatusDormant)
1064+
require.Error(t, err, "cannot mark owners as dormant")
1065+
})
1066+
1067+
t.Run("MarkAnotherUserDormant", func(t *testing.T) {
1068+
t.Parallel()
1069+
auditor := audit.NewMock()
1070+
client := coderdtest.New(t, &coderdtest.Options{Auditor: auditor})
1071+
numLogs := len(auditor.AuditLogs())
1072+
1073+
me := coderdtest.CreateFirstUser(t, client)
1074+
numLogs++ // add an audit log for user create
1075+
numLogs++ // add an audit log for login
1076+
1077+
_, user := coderdtest.CreateAnotherUser(t, client, me.OrganizationID)
1078+
numLogs++ // add an audit log for user create
1079+
1080+
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
1081+
defer cancel()
1082+
1083+
user, err := client.UpdateUserStatus(ctx, user.Username, codersdk.UserStatusDormant)
1084+
require.NoError(t, err)
1085+
require.Equal(t, user.Status, codersdk.UserStatusDormant)
1086+
numLogs++ // add an audit log for user update
1087+
1088+
require.Len(t, auditor.AuditLogs(), numLogs)
1089+
require.Equal(t, database.AuditActionWrite, auditor.AuditLogs()[numLogs-1].Action)
1090+
})
1091+
1092+
t.Run("MarkOwnUserDormant", func(t *testing.T) {
1093+
t.Parallel()
1094+
client := coderdtest.New(t, nil)
1095+
coderdtest.CreateFirstUser(t, client)
1096+
1097+
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
1098+
defer cancel()
1099+
1100+
client.User(ctx, codersdk.Me)
1101+
_, err := client.UpdateUserStatus(ctx, codersdk.Me, codersdk.UserStatusDormant)
1102+
1103+
require.ErrorContains(t, err, "cannot mark own user as dormant")
1104+
})
1105+
}
1106+
1107+
// FIXME Activate dormant account
1108+
10511109
func TestGetUser(t *testing.T) {
10521110
t.Parallel()
10531111

0 commit comments

Comments
 (0)