(t *testing.T)
| 6081 | } |
| 6082 | |
| 6083 | func 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 | |
| 6131 | func TestWorkspaceCreateWithImplicitPreset(t *testing.T) { |
| 6132 | t.Parallel() |
nothing calls this directly
no test coverage detected