(t *testing.T)
| 79 | } |
| 80 | |
| 81 | func TestStart(t *testing.T) { |
| 82 | t.Parallel() |
| 83 | |
| 84 | echoResponses := func() *echo.Responses { |
| 85 | return &echo.Responses{ |
| 86 | Parse: echo.ParseComplete, |
| 87 | ProvisionInit: echo.InitComplete, |
| 88 | ProvisionPlan: echo.PlanComplete, |
| 89 | ProvisionGraph: []*proto.Response{ |
| 90 | { |
| 91 | Type: &proto.Response_Graph{ |
| 92 | Graph: &proto.GraphComplete{ |
| 93 | Parameters: []*proto.RichParameter{ |
| 94 | { |
| 95 | Name: ephemeralParameterName, |
| 96 | Description: ephemeralParameterDescription, |
| 97 | Mutable: true, |
| 98 | Ephemeral: true, |
| 99 | }, |
| 100 | }, |
| 101 | }, |
| 102 | }, |
| 103 | }, |
| 104 | }, |
| 105 | ProvisionApply: echo.ApplyComplete, |
| 106 | } |
| 107 | } |
| 108 | |
| 109 | t.Run("BuildOptions", func(t *testing.T) { |
| 110 | t.Parallel() |
| 111 | |
| 112 | client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true}) |
| 113 | owner := coderdtest.CreateFirstUser(t, client) |
| 114 | member, _ := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID) |
| 115 | version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, echoResponses()) |
| 116 | coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID) |
| 117 | template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID) |
| 118 | workspace := coderdtest.CreateWorkspace(t, member, template.ID, func(request *codersdk.CreateWorkspaceRequest) { |
| 119 | request.RichParameterValues = []codersdk.WorkspaceBuildParameter{ |
| 120 | {Name: ephemeralParameterName, Value: "foo"}, // Value is required, set it to something |
| 121 | } |
| 122 | }) |
| 123 | coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID) |
| 124 | // Stop the workspace |
| 125 | workspaceBuild := coderdtest.CreateWorkspaceBuild(t, client, workspace, database.WorkspaceTransitionStop, func(request *codersdk.CreateWorkspaceBuildRequest) { |
| 126 | request.RichParameterValues = []codersdk.WorkspaceBuildParameter{ |
| 127 | {Name: ephemeralParameterName, Value: "foo"}, // Value is required, set it to something |
| 128 | } |
| 129 | }) |
| 130 | coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspaceBuild.ID) |
| 131 | |
| 132 | inv, root := clitest.New(t, "start", workspace.Name, "--prompt-ephemeral-parameters") |
| 133 | clitest.SetupConfig(t, member, root) |
| 134 | doneChan := make(chan struct{}) |
| 135 | pty := ptytest.New(t).Attach(inv) |
| 136 | go func() { |
| 137 | defer close(doneChan) |
| 138 | err := inv.Run() |
nothing calls this directly
no test coverage detected