(t *testing.T)
| 4426 | } |
| 4427 | |
| 4428 | func TestUpdateWorkspaceACL(t *testing.T) { |
| 4429 | t.Parallel() |
| 4430 | |
| 4431 | t.Run("OKWithGroup", func(t *testing.T) { |
| 4432 | t.Parallel() |
| 4433 | |
| 4434 | dv := coderdtest.DeploymentValues(t) |
| 4435 | |
| 4436 | adminClient, adminUser := coderdenttest.New(t, &coderdenttest.Options{ |
| 4437 | Options: &coderdtest.Options{ |
| 4438 | IncludeProvisionerDaemon: true, |
| 4439 | DeploymentValues: dv, |
| 4440 | }, |
| 4441 | LicenseOptions: &coderdenttest.LicenseOptions{ |
| 4442 | Features: license.Features{ |
| 4443 | codersdk.FeatureTemplateRBAC: 1, |
| 4444 | }, |
| 4445 | }, |
| 4446 | }) |
| 4447 | orgID := adminUser.OrganizationID |
| 4448 | client, _ := coderdtest.CreateAnotherUser(t, adminClient, orgID) |
| 4449 | _, friend := coderdtest.CreateAnotherUser(t, adminClient, orgID) |
| 4450 | group := coderdtest.CreateGroup(t, adminClient, orgID, "bloob") |
| 4451 | |
| 4452 | tv := coderdtest.CreateTemplateVersion(t, adminClient, orgID, nil) |
| 4453 | coderdtest.AwaitTemplateVersionJobCompleted(t, adminClient, tv.ID) |
| 4454 | template := coderdtest.CreateTemplate(t, adminClient, orgID, tv.ID) |
| 4455 | |
| 4456 | ws := coderdtest.CreateWorkspace(t, client, template.ID) |
| 4457 | coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, ws.LatestBuild.ID) |
| 4458 | |
| 4459 | ctx := testutil.Context(t, testutil.WaitMedium) |
| 4460 | err := client.UpdateWorkspaceACL(ctx, ws.ID, codersdk.UpdateWorkspaceACL{ |
| 4461 | UserRoles: map[string]codersdk.WorkspaceRole{ |
| 4462 | friend.ID.String(): codersdk.WorkspaceRoleUse, |
| 4463 | }, |
| 4464 | GroupRoles: map[string]codersdk.WorkspaceRole{ |
| 4465 | group.ID.String(): codersdk.WorkspaceRoleAdmin, |
| 4466 | }, |
| 4467 | }) |
| 4468 | require.NoError(t, err) |
| 4469 | |
| 4470 | workspaceACL, err := client.WorkspaceACL(ctx, ws.ID) |
| 4471 | require.NoError(t, err) |
| 4472 | require.Len(t, workspaceACL.Users, 1) |
| 4473 | require.Equal(t, workspaceACL.Users[0].ID, friend.ID) |
| 4474 | require.Equal(t, workspaceACL.Users[0].Role, codersdk.WorkspaceRoleUse) |
| 4475 | require.Len(t, workspaceACL.Groups, 1) |
| 4476 | require.Equal(t, workspaceACL.Groups[0].ID, group.ID) |
| 4477 | require.Equal(t, workspaceACL.Groups[0].Role, codersdk.WorkspaceRoleAdmin) |
| 4478 | }) |
| 4479 | |
| 4480 | t.Run("UnknownIDs", func(t *testing.T) { |
| 4481 | t.Parallel() |
| 4482 | |
| 4483 | dv := coderdtest.DeploymentValues(t) |
| 4484 | |
| 4485 | adminClient := coderdtest.New(t, &coderdtest.Options{ |
nothing calls this directly
no test coverage detected