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

Function TestWorkspaceListTasks

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

Source from the content-addressed store, hash-verified

5467}
5468
5469func TestWorkspaceListTasks(t *testing.T) {
5470 t.Parallel()
5471
5472 ctx := testutil.Context(t, testutil.WaitShort)
5473 client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
5474 user := coderdtest.CreateFirstUser(t, client)
5475
5476 version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, &echo.Responses{
5477 Parse: echo.ParseComplete,
5478 ProvisionApply: echo.ApplyComplete,
5479 ProvisionGraph: []*proto.Response{
5480 {Type: &proto.Response_Graph{Graph: &proto.GraphComplete{
5481 HasAiTasks: true,
5482 }}},
5483 },
5484 })
5485 coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
5486 template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
5487
5488 // Given: a regular user workspace
5489 workspaceWithoutTask, err := client.CreateUserWorkspace(ctx, codersdk.Me, codersdk.CreateWorkspaceRequest{
5490 TemplateID: template.ID,
5491 Name: "user-workspace",
5492 })
5493 require.NoError(t, err)
5494 coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspaceWithoutTask.LatestBuild.ID)
5495
5496 // Given: a workspace associated with a task
5497 task, err := client.CreateTask(ctx, codersdk.Me, codersdk.CreateTaskRequest{
5498 TemplateVersionID: template.ActiveVersionID,
5499 Input: "Some task prompt",
5500 })
5501 require.NoError(t, err)
5502 assert.True(t, task.WorkspaceID.Valid)
5503 workspaceWithTask, err := client.Workspace(ctx, task.WorkspaceID.UUID)
5504 require.NoError(t, err)
5505 coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspaceWithTask.LatestBuild.ID)
5506 assert.NotEmpty(t, task.Name)
5507 assert.Equal(t, template.ID, task.TemplateID)
5508
5509 // When: listing the workspaces
5510 workspaces, err := client.Workspaces(ctx, codersdk.WorkspaceFilter{})
5511 require.NoError(t, err)
5512
5513 assert.Equal(t, workspaces.Count, 2)
5514
5515 // Then: verify TaskID is only set for task workspaces
5516 for _, workspace := range workspaces.Workspaces {
5517 if workspace.ID == workspaceWithoutTask.ID {
5518 assert.False(t, workspace.TaskID.Valid)
5519 } else if workspace.ID == workspaceWithTask.ID {
5520 assert.True(t, workspace.TaskID.Valid)
5521 assert.Equal(t, task.ID, workspace.TaskID.UUID)
5522 }
5523 }
5524}
5525
5526func TestWorkspaceAppUpsertRestart(t *testing.T) {

Callers

nothing calls this directly

Calls 13

ContextFunction · 0.92
NewFunction · 0.92
CreateFirstUserFunction · 0.92
CreateTemplateVersionFunction · 0.92
CreateTemplateFunction · 0.92
CreateTaskMethod · 0.80
WorkspaceMethod · 0.80
NotEmptyMethod · 0.80
WorkspacesMethod · 0.80
CreateUserWorkspaceMethod · 0.65

Tested by

no test coverage detected