Skip to content

Commit 9063675

Browse files
committed
add to unit test
1 parent 19ca988 commit 9063675

File tree

2 files changed

+13
-7
lines changed

2 files changed

+13
-7
lines changed

enterprise/coderd/roles.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -133,9 +133,6 @@ func (api *API) patchOrgRoles(rw http.ResponseWriter, r *http.Request) {
133133
}
134134

135135
// deleteOrgRole will remove a custom role from an organization
136-
// TODO: Deleting a custom role will remove permissions from any existing user
137-
// with the role assigned. TBD if we want to also remove the roles from the
138-
// user, or request the admin remove all the user roles first.
139136
//
140137
// @Summary Delete a custom organization role
141138
// @ID delete-a-custom-organization-role

enterprise/coderd/roles_test.go

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -403,10 +403,10 @@ func TestCustomOrganizationRole(t *testing.T) {
403403
coderdtest.CreateAnotherUser(t, owner, first.OrganizationID, rbac.ScopedRoleOrgTemplateAdmin(first.OrganizationID), rbac.ScopedRoleOrgAuditor(first.OrganizationID), customRoleIdentifier)
404404

405405
// Verify members have the custom role
406-
members, err := orgAdmin.OrganizationMembers(ctx, first.OrganizationID)
406+
originalMembers, err := orgAdmin.OrganizationMembers(ctx, first.OrganizationID)
407407
require.NoError(t, err)
408-
require.Len(t, members, 5) // 3 members + org admin + owner
409-
for _, member := range members {
408+
require.Len(t, originalMembers, 5) // 3 members + org admin + owner
409+
for _, member := range originalMembers {
410410
if member.UserID == orgAdminUser.ID || member.UserID == first.UserID {
411411
continue
412412
}
@@ -420,13 +420,22 @@ func TestCustomOrganizationRole(t *testing.T) {
420420
require.NoError(t, err)
421421

422422
// Verify the role was removed from all members
423-
members, err = orgAdmin.OrganizationMembers(ctx, first.OrganizationID)
423+
members, err := orgAdmin.OrganizationMembers(ctx, first.OrganizationID)
424424
require.NoError(t, err)
425425
require.Len(t, members, 5) // 3 members + org admin + owner
426426
for _, member := range members {
427427
require.False(t, slices.ContainsFunc(member.Roles, func(role codersdk.SlimRole) bool {
428428
return role.Name == customRoleIdentifier.Name
429429
}), "role should be removed from all users")
430+
431+
// Verify the rest of the member's roles are unchanged
432+
original := originalMembers[slices.IndexFunc(originalMembers, func(haystack codersdk.OrganizationMemberWithUserData) bool {
433+
return haystack.UserID == member.UserID
434+
})]
435+
originalWithoutCustom := slices.DeleteFunc(original.Roles, func(role codersdk.SlimRole) bool {
436+
return role.Name == customRoleIdentifier.Name
437+
})
438+
require.ElementsMatch(t, originalWithoutCustom, member.Roles, "original roles are unchanged")
430439
}
431440
})
432441
}

0 commit comments

Comments
 (0)