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

Function TestExpTaskPause

cli/task_pause_test.go:15–140  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

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

Callers

nothing calls this directly

Calls 15

ContextFunction · 0.92
NewFunction · 0.92
CaptureFunction · 0.92
SetupConfigFunction · 0.92
NewFunction · 0.92
StartWithWaiterFunction · 0.92
setupCLITaskTestFunction · 0.85
WithContextMethod · 0.80
StdoutMethod · 0.80
TaskByIdentifierMethod · 0.80
ExpectMatchContextMethod · 0.80
WriteLineMethod · 0.80

Tested by

no test coverage detected