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

Function TestStartWithParameters

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

Source from the content-addressed store, hash-verified

221}
222
223func TestStartWithParameters(t *testing.T) {
224 t.Parallel()
225
226 t.Run("DoNotAskForImmutables", func(t *testing.T) {
227 t.Parallel()
228
229 // Create the workspace
230 client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
231 owner := coderdtest.CreateFirstUser(t, client)
232 member, _ := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID)
233 version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, immutableParamsResponse())
234 coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
235 template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
236 workspace := coderdtest.CreateWorkspace(t, member, template.ID, func(cwr *codersdk.CreateWorkspaceRequest) {
237 cwr.RichParameterValues = []codersdk.WorkspaceBuildParameter{
238 {
239 Name: immutableParameterName,
240 Value: immutableParameterValue,
241 },
242 }
243 })
244 coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
245
246 // Stop the workspace
247 workspaceBuild := coderdtest.CreateWorkspaceBuild(t, client, workspace, database.WorkspaceTransitionStop)
248 coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspaceBuild.ID)
249
250 // Start the workspace again
251 inv, root := clitest.New(t, "start", workspace.Name)
252 clitest.SetupConfig(t, member, root)
253 doneChan := make(chan struct{})
254 pty := ptytest.New(t).Attach(inv)
255 go func() {
256 defer close(doneChan)
257 err := inv.Run()
258 assert.NoError(t, err)
259 }()
260
261 pty.ExpectMatch("workspace has been started")
262 <-doneChan
263
264 // Verify if immutable parameter is set
265 ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitShort)
266 defer cancel()
267
268 workspace, err := client.WorkspaceByOwnerAndName(ctx, workspace.OwnerName, workspace.Name, codersdk.WorkspaceOptions{})
269 require.NoError(t, err)
270 actualParameters, err := client.WorkspaceBuildParameters(ctx, workspace.LatestBuild.ID)
271 require.NoError(t, err)
272 require.Contains(t, actualParameters, codersdk.WorkspaceBuildParameter{
273 Name: immutableParameterName,
274 Value: immutableParameterValue,
275 })
276 })
277
278 t.Run("AlwaysPrompt", func(t *testing.T) {
279 t.Parallel()
280

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