(t *testing.T)
| 15 | ) |
| 16 | |
| 17 | func TestTemplateVersionsArchive(t *testing.T) { |
| 18 | t.Parallel() |
| 19 | t.Run("Archive-Unarchive", func(t *testing.T) { |
| 20 | t.Parallel() |
| 21 | ownerClient := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true}) |
| 22 | owner := coderdtest.CreateFirstUser(t, ownerClient) |
| 23 | |
| 24 | client, _ := coderdtest.CreateAnotherUser(t, ownerClient, owner.OrganizationID, rbac.RoleTemplateAdmin()) |
| 25 | version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, nil) |
| 26 | _ = coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID) |
| 27 | template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID) |
| 28 | other := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, nil, func(request *codersdk.CreateTemplateVersionRequest) { |
| 29 | request.TemplateID = template.ID |
| 30 | }) |
| 31 | _ = coderdtest.AwaitTemplateVersionJobCompleted(t, client, other.ID) |
| 32 | |
| 33 | // Archive |
| 34 | inv, root := clitest.New(t, "templates", "versions", "archive", template.Name, other.Name, "-y") |
| 35 | clitest.SetupConfig(t, client, root) |
| 36 | w := clitest.StartWithWaiter(t, inv) |
| 37 | w.RequireSuccess() |
| 38 | |
| 39 | // Verify archived |
| 40 | ctx := testutil.Context(t, testutil.WaitMedium) |
| 41 | found, err := client.TemplateVersion(ctx, other.ID) |
| 42 | require.NoError(t, err) |
| 43 | require.True(t, found.Archived, "expect archived") |
| 44 | |
| 45 | // Unarchive |
| 46 | inv, root = clitest.New(t, "templates", "versions", "unarchive", template.Name, other.Name, "-y") |
| 47 | clitest.SetupConfig(t, client, root) |
| 48 | w = clitest.StartWithWaiter(t, inv) |
| 49 | w.RequireSuccess() |
| 50 | |
| 51 | // Verify unarchived |
| 52 | ctx = testutil.Context(t, testutil.WaitMedium) |
| 53 | found, err = client.TemplateVersion(ctx, other.ID) |
| 54 | require.NoError(t, err) |
| 55 | require.False(t, found.Archived, "expect unarchived") |
| 56 | }) |
| 57 | |
| 58 | t.Run("ArchiveMany", func(t *testing.T) { |
| 59 | t.Parallel() |
| 60 | ownerClient := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true}) |
| 61 | owner := coderdtest.CreateFirstUser(t, ownerClient) |
| 62 | |
| 63 | client, _ := coderdtest.CreateAnotherUser(t, ownerClient, owner.OrganizationID, rbac.RoleTemplateAdmin()) |
| 64 | version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, nil) |
| 65 | _ = coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID) |
| 66 | template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID) |
| 67 | |
| 68 | // Add a failed |
| 69 | expArchived := map[uuid.UUID]bool{} |
| 70 | failed := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, &echo.Responses{ |
| 71 | Parse: echo.ParseComplete, |
| 72 | ProvisionApply: echo.ApplyFailed, |
| 73 | ProvisionPlan: echo.PlanFailed, |
| 74 | ProvisionInit: echo.InitComplete, |
nothing calls this directly
no test coverage detected