(t *testing.T)
| 2467 | } |
| 2468 | |
| 2469 | func TestPauseTask(t *testing.T) { |
| 2470 | t.Parallel() |
| 2471 | |
| 2472 | setupClient := func(t *testing.T, db database.Store, ps pubsub.Pubsub, authorizer rbac.Authorizer) *codersdk.Client { |
| 2473 | t.Helper() |
| 2474 | client, _, _ := coderdtest.NewWithAPI(t, &coderdtest.Options{ |
| 2475 | Database: db, |
| 2476 | Pubsub: ps, |
| 2477 | Authorizer: authorizer, |
| 2478 | }) |
| 2479 | return client |
| 2480 | } |
| 2481 | |
| 2482 | setupWorkspaceTask := func(t *testing.T, db database.Store, user codersdk.CreateFirstUserResponse) (database.Task, uuid.UUID) { |
| 2483 | t.Helper() |
| 2484 | workspaceBuild := dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{ |
| 2485 | OrganizationID: user.OrganizationID, |
| 2486 | OwnerID: user.UserID, |
| 2487 | }).WithTask(database.TaskTable{ |
| 2488 | Prompt: "pause me", |
| 2489 | }, nil).Do() |
| 2490 | return workspaceBuild.Task, workspaceBuild.Workspace.ID |
| 2491 | } |
| 2492 | |
| 2493 | t.Run("OK", func(t *testing.T) { |
| 2494 | t.Parallel() |
| 2495 | |
| 2496 | ctx := testutil.Context(t, testutil.WaitLong) |
| 2497 | client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true}) |
| 2498 | user := coderdtest.CreateFirstUser(t, client) |
| 2499 | |
| 2500 | version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, &echo.Responses{ |
| 2501 | Parse: echo.ParseComplete, |
| 2502 | ProvisionApply: echo.ApplyComplete, |
| 2503 | ProvisionGraph: []*proto.Response{ |
| 2504 | {Type: &proto.Response_Graph{Graph: &proto.GraphComplete{ |
| 2505 | HasAiTasks: true, |
| 2506 | }}}, |
| 2507 | }, |
| 2508 | }) |
| 2509 | coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID) |
| 2510 | template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID) |
| 2511 | |
| 2512 | task, err := client.CreateTask(ctx, codersdk.Me, codersdk.CreateTaskRequest{ |
| 2513 | TemplateVersionID: template.ActiveVersionID, |
| 2514 | Input: "pause me", |
| 2515 | }) |
| 2516 | require.NoError(t, err) |
| 2517 | require.True(t, task.WorkspaceID.Valid) |
| 2518 | |
| 2519 | workspace, err := client.Workspace(ctx, task.WorkspaceID.UUID) |
| 2520 | require.NoError(t, err) |
| 2521 | coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID) |
| 2522 | |
| 2523 | resp, err := client.PauseTask(ctx, codersdk.Me, task.ID) |
| 2524 | |
| 2525 | // Verify that the request was accepted correctly: |
| 2526 | require.NoError(t, err) |
nothing calls this directly
no test coverage detected