(t *testing.T)
| 14 | ) |
| 15 | |
| 16 | func TestExpTaskResume(t *testing.T) { |
| 17 | t.Parallel() |
| 18 | |
| 19 | t.Run("WithYesFlag", func(t *testing.T) { |
| 20 | t.Parallel() |
| 21 | |
| 22 | // Given: A paused task |
| 23 | setupCtx := testutil.Context(t, testutil.WaitLong) |
| 24 | setup := setupCLITaskTest(setupCtx, t, nil) |
| 25 | pauseTask(setupCtx, t, setup.userClient, setup.task) |
| 26 | |
| 27 | // When: We attempt to resume the task |
| 28 | inv, root := clitest.New(t, "task", "resume", setup.task.Name, "--yes") |
| 29 | output := clitest.Capture(inv) |
| 30 | clitest.SetupConfig(t, setup.userClient, root) |
| 31 | |
| 32 | // Then: We expect the task to be resumed |
| 33 | ctx := testutil.Context(t, testutil.WaitMedium) |
| 34 | err := inv.WithContext(ctx).Run() |
| 35 | require.NoError(t, err) |
| 36 | require.Contains(t, output.Stdout(), "has been resumed") |
| 37 | |
| 38 | updated, err := setup.userClient.TaskByIdentifier(ctx, setup.task.Name) |
| 39 | require.NoError(t, err) |
| 40 | require.Equal(t, codersdk.TaskStatusInitializing, updated.Status) |
| 41 | }) |
| 42 | |
| 43 | // OtherUserTask verifies that an admin can resume a task owned by |
| 44 | // another user using the "owner/name" identifier format. |
| 45 | t.Run("OtherUserTask", func(t *testing.T) { |
| 46 | t.Parallel() |
| 47 | |
| 48 | // Given: A different user's paused task |
| 49 | setupCtx := testutil.Context(t, testutil.WaitLong) |
| 50 | setup := setupCLITaskTest(setupCtx, t, nil) |
| 51 | pauseTask(setupCtx, t, setup.userClient, setup.task) |
| 52 | |
| 53 | // When: We attempt to resume their task |
| 54 | identifier := fmt.Sprintf("%s/%s", setup.task.OwnerName, setup.task.Name) |
| 55 | inv, root := clitest.New(t, "task", "resume", identifier, "--yes") |
| 56 | output := clitest.Capture(inv) |
| 57 | clitest.SetupConfig(t, setup.ownerClient, root) |
| 58 | |
| 59 | // Then: We expect the task to be resumed |
| 60 | ctx := testutil.Context(t, testutil.WaitMedium) |
| 61 | err := inv.WithContext(ctx).Run() |
| 62 | require.NoError(t, err) |
| 63 | require.Contains(t, output.Stdout(), "has been resumed") |
| 64 | |
| 65 | updated, err := setup.ownerClient.TaskByIdentifier(ctx, identifier) |
| 66 | require.NoError(t, err) |
| 67 | require.Equal(t, codersdk.TaskStatusInitializing, updated.Status) |
| 68 | }) |
| 69 | |
| 70 | t.Run("NoWait", func(t *testing.T) { |
| 71 | t.Parallel() |
| 72 | |
| 73 | // Given: A paused task |
nothing calls this directly
no test coverage detected