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

Function TestStart

cli/start_test.go:81–221  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

79}
80
81func 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()

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
CreateWorkspaceBuildFunction · 0.92
NewFunction · 0.92
SetupConfigFunction · 0.92
NewFunction · 0.92

Tested by

no test coverage detected