Skip to content

Commit 4f053d4

Browse files
committed
chore: add tests for workspaces/acl [delete]
1 parent 1f8682a commit 4f053d4

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

coderd/workspaces_test.go

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4914,6 +4914,79 @@ func TestUpdateWorkspaceACL(t *testing.T) {
49144914
})
49154915
}
49164916

4917+
func TestDeleteWorkspaceACL(t *testing.T) {
4918+
t.Parallel()
4919+
4920+
dv := coderdtest.DeploymentValues(t)
4921+
dv.Experiments = []string{string(codersdk.ExperimentWorkspaceSharing)}
4922+
4923+
t.Run("WorkspaceOwnerCanDelete", func(t *testing.T) {
4924+
t.Parallel()
4925+
4926+
var (
4927+
client, db = coderdtest.NewWithDatabase(t, &coderdtest.Options{
4928+
DeploymentValues: dv,
4929+
})
4930+
admin = coderdtest.CreateFirstUser(t, client)
4931+
workspaceOwnerClient, workspaceOwner = coderdtest.CreateAnotherUser(t, client, admin.OrganizationID)
4932+
_, toShareWithUser = coderdtest.CreateAnotherUser(t, client, admin.OrganizationID)
4933+
workspace = dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{
4934+
OwnerID: workspaceOwner.ID,
4935+
OrganizationID: admin.OrganizationID,
4936+
}).Do().Workspace
4937+
)
4938+
4939+
ctx := testutil.Context(t, testutil.WaitMedium)
4940+
4941+
err := workspaceOwnerClient.UpdateWorkspaceACL(ctx, workspace.ID, codersdk.UpdateWorkspaceACL{
4942+
UserRoles: map[string]codersdk.WorkspaceRole{
4943+
toShareWithUser.ID.String(): codersdk.WorkspaceRoleUse,
4944+
},
4945+
})
4946+
require.NoError(t, err)
4947+
4948+
err = workspaceOwnerClient.DeleteWorkspaceACL(ctx, workspace.ID)
4949+
require.NoError(t, err)
4950+
4951+
acl, err := workspaceOwnerClient.WorkspaceACL(ctx, workspace.ID)
4952+
require.NoError(t, err)
4953+
require.Empty(t, acl.Users)
4954+
})
4955+
4956+
t.Run("SharedUsersCannot", func(t *testing.T) {
4957+
t.Parallel()
4958+
4959+
var (
4960+
client, db = coderdtest.NewWithDatabase(t, &coderdtest.Options{
4961+
DeploymentValues: dv,
4962+
})
4963+
admin = coderdtest.CreateFirstUser(t, client)
4964+
workspaceOwnerClient, workspaceOwner = coderdtest.CreateAnotherUser(t, client, admin.OrganizationID)
4965+
sharedUseClient, toShareWithUser = coderdtest.CreateAnotherUser(t, client, admin.OrganizationID)
4966+
workspace = dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{
4967+
OwnerID: workspaceOwner.ID,
4968+
OrganizationID: admin.OrganizationID,
4969+
}).Do().Workspace
4970+
)
4971+
4972+
ctx := testutil.Context(t, testutil.WaitMedium)
4973+
4974+
err := workspaceOwnerClient.UpdateWorkspaceACL(ctx, workspace.ID, codersdk.UpdateWorkspaceACL{
4975+
UserRoles: map[string]codersdk.WorkspaceRole{
4976+
toShareWithUser.ID.String(): codersdk.WorkspaceRoleUse,
4977+
},
4978+
})
4979+
require.NoError(t, err)
4980+
4981+
err = sharedUseClient.DeleteWorkspaceACL(ctx, workspace.ID)
4982+
assert.Error(t, err)
4983+
4984+
acl, err := workspaceOwnerClient.WorkspaceACL(ctx, workspace.ID)
4985+
require.NoError(t, err)
4986+
require.Equal(t, acl.Users[0].ID, toShareWithUser.ID)
4987+
})
4988+
}
4989+
49174990
func TestWorkspaceCreateWithImplicitPreset(t *testing.T) {
49184991
t.Parallel()
49194992

0 commit comments

Comments
 (0)