(t *testing.T)
| 2833 | } |
| 2834 | |
| 2835 | func TestResumeTask(t *testing.T) { |
| 2836 | t.Parallel() |
| 2837 | |
| 2838 | setupClient := func(t *testing.T, db database.Store, ps pubsub.Pubsub, authorizer rbac.Authorizer) *codersdk.Client { |
| 2839 | t.Helper() |
| 2840 | client, _, _ := coderdtest.NewWithAPI(t, &coderdtest.Options{ |
| 2841 | Database: db, |
| 2842 | Pubsub: ps, |
| 2843 | Authorizer: authorizer, |
| 2844 | IncludeProvisionerDaemon: true, |
| 2845 | }) |
| 2846 | return client |
| 2847 | } |
| 2848 | |
| 2849 | setupWorkspaceTask := func(t *testing.T, db database.Store, user codersdk.CreateFirstUserResponse) (database.Task, uuid.UUID) { |
| 2850 | t.Helper() |
| 2851 | workspaceBuild := dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{ |
| 2852 | OrganizationID: user.OrganizationID, |
| 2853 | OwnerID: user.UserID, |
| 2854 | }).WithTask(database.TaskTable{ |
| 2855 | Prompt: "resume me", |
| 2856 | }, nil).Do() |
| 2857 | return workspaceBuild.Task, workspaceBuild.Workspace.ID |
| 2858 | } |
| 2859 | |
| 2860 | t.Run("OK", func(t *testing.T) { |
| 2861 | t.Parallel() |
| 2862 | |
| 2863 | ctx := testutil.Context(t, testutil.WaitLong) |
| 2864 | client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true}) |
| 2865 | user := coderdtest.CreateFirstUser(t, client) |
| 2866 | |
| 2867 | version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, &echo.Responses{ |
| 2868 | Parse: echo.ParseComplete, |
| 2869 | ProvisionApply: echo.ApplyComplete, |
| 2870 | ProvisionGraph: []*proto.Response{ |
| 2871 | {Type: &proto.Response_Graph{Graph: &proto.GraphComplete{ |
| 2872 | HasAiTasks: true, |
| 2873 | }}}, |
| 2874 | }, |
| 2875 | }) |
| 2876 | coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID) |
| 2877 | template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID) |
| 2878 | task, err := client.CreateTask(ctx, codersdk.Me, codersdk.CreateTaskRequest{ |
| 2879 | TemplateVersionID: template.ActiveVersionID, |
| 2880 | Input: "resume me", |
| 2881 | }) |
| 2882 | require.NoError(t, err) |
| 2883 | |
| 2884 | workspace, err := client.Workspace(ctx, task.WorkspaceID.UUID) |
| 2885 | require.NoError(t, err) |
| 2886 | coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID) |
| 2887 | |
| 2888 | pauseResp, err := client.PauseTask(ctx, codersdk.Me, task.ID) |
| 2889 | require.NoError(t, err) |
| 2890 | coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, pauseResp.WorkspaceBuild.ID) |
| 2891 | |
| 2892 | resumeResp, err := client.ResumeTask(ctx, codersdk.Me, task.ID) |
nothing calls this directly
no test coverage detected