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

Function TestRestart

cli/restart_test.go:21–301  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

19)
20
21func TestRestart(t *testing.T) {
22 t.Parallel()
23
24 echoResponses := func() *echo.Responses {
25 return prepareEchoResponses([]*proto.RichParameter{
26 {
27 Name: ephemeralParameterName,
28 Description: ephemeralParameterDescription,
29 Mutable: true,
30 Ephemeral: true,
31 },
32 })
33 }
34
35 t.Run("OK", func(t *testing.T) {
36 t.Parallel()
37
38 client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
39 owner := coderdtest.CreateFirstUser(t, client)
40 member, _ := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID)
41 version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, nil)
42 coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
43 template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
44 workspace := coderdtest.CreateWorkspace(t, member, template.ID)
45 coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
46
47 ctx := testutil.Context(t, testutil.WaitLong)
48
49 inv, root := clitest.New(t, "restart", workspace.Name, "--yes")
50 clitest.SetupConfig(t, member, root)
51
52 pty := ptytest.New(t).Attach(inv)
53
54 done := make(chan error, 1)
55 go func() {
56 done <- inv.WithContext(ctx).Run()
57 }()
58 pty.ExpectMatch("Stopping workspace")
59 pty.ExpectMatch("Starting workspace")
60 pty.ExpectMatch("workspace has been restarted")
61
62 err := <-done
63 require.NoError(t, err, "execute failed")
64 })
65
66 t.Run("PromptEphemeralParameters", func(t *testing.T) {
67 t.Parallel()
68
69 client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
70 owner := coderdtest.CreateFirstUser(t, client)
71 member, memberUser := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID)
72 version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, echoResponses())
73 coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
74 template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID, func(request *codersdk.CreateTemplateRequest) {
75 request.UseClassicParameterFlow = ptr.Ref(true) // TODO: Remove when dynamic parameters prompt missing ephemeral parameters.
76 })
77 workspace := coderdtest.CreateWorkspace(t, member, template.ID, func(request *codersdk.CreateWorkspaceRequest) {
78 request.RichParameterValues = []codersdk.WorkspaceBuildParameter{

Callers

nothing calls this directly

Calls 15

NewFunction · 0.92
CreateFirstUserFunction · 0.92
CreateAnotherUserFunction · 0.92
CreateTemplateVersionFunction · 0.92
CreateTemplateFunction · 0.92
CreateWorkspaceFunction · 0.92
ContextFunction · 0.92
NewFunction · 0.92
SetupConfigFunction · 0.92
NewFunction · 0.92

Tested by

no test coverage detected