MCPcopy Index your code
hub / github.com/coder/coder / TestWorkspaceAvailableUsers

Function TestWorkspaceAvailableUsers

coderd/workspaces_test.go:6083–6129  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

6081}
6082
6083func TestWorkspaceAvailableUsers(t *testing.T) {
6084 t.Parallel()
6085
6086 t.Run("OrgAdminCanListUsers", func(t *testing.T) {
6087 t.Parallel()
6088 client := coderdtest.New(t, nil)
6089 owner := coderdtest.CreateFirstUser(t, client)
6090
6091 ctx := testutil.Context(t, testutil.WaitMedium)
6092
6093 // Create an org admin and additional users
6094 orgAdminClient, _ := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID, rbac.ScopedRoleOrgAdmin(owner.OrganizationID))
6095 _, user1 := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID)
6096 _, user2 := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID)
6097
6098 // Org admin should be able to list available users
6099 users, err := orgAdminClient.WorkspaceAvailableUsers(ctx, owner.OrganizationID, "me")
6100 require.NoError(t, err)
6101 require.GreaterOrEqual(t, len(users), 4) // owner + orgAdmin + 2 users
6102
6103 // Verify the users we created are in the list
6104 usernames := make([]string, 0, len(users))
6105 for _, u := range users {
6106 usernames = append(usernames, u.Username)
6107 }
6108 require.Contains(t, usernames, user1.Username)
6109 require.Contains(t, usernames, user2.Username)
6110 })
6111
6112 t.Run("MemberCannotListUsers", func(t *testing.T) {
6113 t.Parallel()
6114 client := coderdtest.New(t, nil)
6115 owner := coderdtest.CreateFirstUser(t, client)
6116
6117 ctx := testutil.Context(t, testutil.WaitMedium)
6118
6119 // Create a regular member
6120 memberClient, _ := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID)
6121
6122 // Regular member should not be able to list available users
6123 _, err := memberClient.WorkspaceAvailableUsers(ctx, owner.OrganizationID, "me")
6124 require.Error(t, err)
6125 var apiErr *codersdk.Error
6126 require.ErrorAs(t, err, &apiErr)
6127 require.Equal(t, http.StatusForbidden, apiErr.StatusCode())
6128 })
6129}
6130
6131func TestWorkspaceCreateWithImplicitPreset(t *testing.T) {
6132 t.Parallel()

Callers

nothing calls this directly

Calls 11

StatusCodeMethod · 0.95
NewFunction · 0.92
CreateFirstUserFunction · 0.92
ContextFunction · 0.92
CreateAnotherUserFunction · 0.92
ScopedRoleOrgAdminFunction · 0.92
RunMethod · 0.65
ContainsMethod · 0.45
ErrorMethod · 0.45
EqualMethod · 0.45

Tested by

no test coverage detected