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

Function TestWorkspace

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

Source from the content-addressed store, hash-verified

54)
55
56func TestWorkspace(t *testing.T) {
57 t.Parallel()
58
59 t.Run("OK", func(t *testing.T) {
60 t.Parallel()
61 client, _, api := coderdtest.NewWithAPI(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
62 user := coderdtest.CreateFirstUser(t, client)
63 authz := coderdtest.AssertRBAC(t, api, client)
64 version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil)
65 coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
66 template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
67 workspace := coderdtest.CreateWorkspace(t, client, template.ID)
68
69 ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
70 defer cancel()
71
72 authz.Reset() // Reset all previous checks done in setup.
73 ws, err := client.Workspace(ctx, workspace.ID)
74 authz.AssertChecked(t, policy.ActionRead, ws)
75 require.NoError(t, err)
76 require.Equal(t, user.UserID, ws.LatestBuild.InitiatorID)
77 require.Equal(t, codersdk.BuildReasonInitiator, ws.LatestBuild.Reason)
78
79 org, err := client.Organization(ctx, ws.OrganizationID)
80 require.NoError(t, err)
81 require.Equal(t, ws.OrganizationName, org.Name)
82 })
83
84 t.Run("Deleted", func(t *testing.T) {
85 t.Parallel()
86 client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
87 user := coderdtest.CreateFirstUser(t, client)
88 version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil)
89 coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
90 template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
91 workspace := coderdtest.CreateWorkspace(t, client, template.ID)
92 coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
93
94 ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
95 defer cancel()
96
97 // Getting with deleted=true should still work.
98 _, err := client.DeletedWorkspace(ctx, workspace.ID)
99 require.NoError(t, err)
100
101 // Delete the workspace
102 build, err := client.CreateWorkspaceBuild(ctx, workspace.ID, codersdk.CreateWorkspaceBuildRequest{
103 Transition: codersdk.WorkspaceTransitionDelete,
104 })
105 require.NoError(t, err, "delete the workspace")
106 coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, build.ID)
107
108 // Getting with deleted=true should work.
109 workspaceNew, err := client.DeletedWorkspace(ctx, workspace.ID)
110 require.NoError(t, err)
111 require.Equal(t, workspace.ID, workspaceNew.ID)
112
113 // Getting with deleted=false should not work.

Callers

nothing calls this directly

Calls 15

StatusCodeMethod · 0.95
NewWithAPIFunction · 0.92
CreateFirstUserFunction · 0.92
AssertRBACFunction · 0.92
CreateTemplateVersionFunction · 0.92
CreateTemplateFunction · 0.92
CreateWorkspaceFunction · 0.92
NewFunction · 0.92
ProvisionGraphWithAgentFunction · 0.92
NewFunction · 0.92

Tested by

no test coverage detected