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

Function TestStartAutoUpdate

cli/start_test.go:391–464  ·  view source on GitHub ↗

TestStartAutoUpdate also tests restart since the flows are virtually identical.

(t *testing.T)

Source from the content-addressed store, hash-verified

389
390// TestStartAutoUpdate also tests restart since the flows are virtually identical.
391func TestStartAutoUpdate(t *testing.T) {
392 t.Parallel()
393
394 const (
395 stringParameterName = "myparam"
396 stringParameterValue = "abc"
397 )
398
399 stringRichParameters := []*proto.RichParameter{
400 {Name: stringParameterName, Type: "string", Mutable: true, Required: true},
401 }
402
403 type testcase struct {
404 Name string
405 Cmd string
406 }
407
408 cases := []testcase{
409 {
410 Name: "StartOK",
411 Cmd: "start",
412 },
413 {
414 Name: "RestartOK",
415 Cmd: "restart",
416 },
417 }
418
419 for _, c := range cases {
420 t.Run(c.Name, func(t *testing.T) {
421 t.Parallel()
422
423 client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
424 owner := coderdtest.CreateFirstUser(t, client)
425 member, _ := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID)
426 version1 := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, nil, func(ctvr *codersdk.CreateTemplateVersionRequest) {
427 ctvr.Name = "v1"
428 })
429 coderdtest.AwaitTemplateVersionJobCompleted(t, client, version1.ID)
430 template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version1.ID)
431 workspace := coderdtest.CreateWorkspace(t, member, template.ID, func(cwr *codersdk.CreateWorkspaceRequest) {
432 cwr.AutomaticUpdates = codersdk.AutomaticUpdatesAlways
433 })
434 coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
435
436 if c.Cmd == "start" {
437 coderdtest.MustTransitionWorkspace(t, member, workspace.ID, codersdk.WorkspaceTransitionStart, codersdk.WorkspaceTransitionStop)
438 }
439 version2 := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, prepareEchoResponses(stringRichParameters), func(ctvr *codersdk.CreateTemplateVersionRequest) {
440 ctvr.Name = "v2"
441 ctvr.TemplateID = template.ID
442 })
443 coderdtest.AwaitTemplateVersionJobCompleted(t, client, version2.ID)
444 coderdtest.UpdateActiveTemplateVersion(t, client, template.ID, version2.ID)
445
446 inv, root := clitest.New(t, c.Cmd, "-y", workspace.Name)
447 clitest.SetupConfig(t, member, root)
448 doneChan := make(chan struct{})

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

Tested by

no test coverage detected