TestStartAutoUpdate also tests restart since the flows are virtually identical.
(t *testing.T)
| 389 | |
| 390 | // TestStartAutoUpdate also tests restart since the flows are virtually identical. |
| 391 | func 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{}) |
nothing calls this directly
no test coverage detected