(t *testing.T)
| 2462 | } |
| 2463 | |
| 2464 | func TestTemplateArchiveVersions(t *testing.T) { |
| 2465 | t.Parallel() |
| 2466 | |
| 2467 | ownerClient := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true}) |
| 2468 | owner := coderdtest.CreateFirstUser(t, ownerClient) |
| 2469 | client, _ := coderdtest.CreateAnotherUser(t, ownerClient, owner.OrganizationID, rbac.RoleTemplateAdmin()) |
| 2470 | |
| 2471 | var totalVersions int |
| 2472 | // Create a template to archive |
| 2473 | initialVersion := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, nil) |
| 2474 | totalVersions++ |
| 2475 | template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, initialVersion.ID) |
| 2476 | |
| 2477 | allFailed := make([]uuid.UUID, 0) |
| 2478 | expArchived := make([]uuid.UUID, 0) |
| 2479 | // create some failed versions |
| 2480 | for i := 0; i < 2; i++ { |
| 2481 | failed := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, &echo.Responses{ |
| 2482 | Parse: echo.ParseComplete, |
| 2483 | ProvisionPlan: echo.PlanFailed, |
| 2484 | ProvisionApply: echo.ApplyFailed, |
| 2485 | ProvisionInit: echo.InitComplete, |
| 2486 | }, func(req *codersdk.CreateTemplateVersionRequest) { |
| 2487 | req.TemplateID = template.ID |
| 2488 | }) |
| 2489 | allFailed = append(allFailed, failed.ID) |
| 2490 | totalVersions++ |
| 2491 | } |
| 2492 | |
| 2493 | // Create some unused versions |
| 2494 | for i := 0; i < 2; i++ { |
| 2495 | unused := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, nil, func(req *codersdk.CreateTemplateVersionRequest) { |
| 2496 | req.TemplateID = template.ID |
| 2497 | }) |
| 2498 | expArchived = append(expArchived, unused.ID) |
| 2499 | totalVersions++ |
| 2500 | } |
| 2501 | |
| 2502 | // Create some used template versions |
| 2503 | for i := 0; i < 2; i++ { |
| 2504 | used := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, nil, func(req *codersdk.CreateTemplateVersionRequest) { |
| 2505 | req.TemplateID = template.ID |
| 2506 | }) |
| 2507 | coderdtest.AwaitTemplateVersionJobCompleted(t, client, used.ID) |
| 2508 | workspace := coderdtest.CreateWorkspace(t, client, uuid.Nil, func(request *codersdk.CreateWorkspaceRequest) { |
| 2509 | request.TemplateVersionID = used.ID |
| 2510 | }) |
| 2511 | coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID) |
| 2512 | totalVersions++ |
| 2513 | } |
| 2514 | |
| 2515 | ctx := testutil.Context(t, testutil.WaitMedium) |
| 2516 | versions, err := client.TemplateVersionsByTemplate(ctx, codersdk.TemplateVersionsByTemplateRequest{ |
| 2517 | TemplateID: template.ID, |
| 2518 | Pagination: codersdk.Pagination{ |
| 2519 | Limit: 100, |
| 2520 | }, |
| 2521 | }) |
nothing calls this directly
no test coverage detected