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

Function TestTemplateDelete

cli/templatedelete_test.go:20–140  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

18)
19
20func TestTemplateDelete(t *testing.T) {
21 t.Parallel()
22
23 t.Run("Ok", func(t *testing.T) {
24 t.Parallel()
25
26 client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
27 owner := coderdtest.CreateFirstUser(t, client)
28 templateAdmin, _ := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID, rbac.RoleTemplateAdmin())
29 version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, nil)
30 _ = coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
31 template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
32
33 inv, root := clitest.New(t, "templates", "delete", template.Name)
34
35 clitest.SetupConfig(t, templateAdmin, root)
36 pty := ptytest.New(t).Attach(inv)
37
38 execDone := make(chan error)
39 go func() {
40 execDone <- inv.Run()
41 }()
42
43 pty.ExpectMatch(fmt.Sprintf("Delete these templates: %s?", pretty.Sprint(cliui.DefaultStyles.Code, template.Name)))
44 pty.WriteLine("yes")
45
46 require.NoError(t, <-execDone)
47
48 _, err := client.Template(context.Background(), template.ID)
49 require.Error(t, err, "template should not exist")
50 })
51
52 t.Run("Multiple --yes", func(t *testing.T) {
53 t.Parallel()
54
55 client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
56 owner := coderdtest.CreateFirstUser(t, client)
57 templateAdmin, _ := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID, rbac.RoleTemplateAdmin())
58 templates := []codersdk.Template{}
59 templateNames := []string{}
60 for i := 0; i < 3; i++ {
61 version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, nil)
62 _ = coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
63 template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
64 templates = append(templates, template)
65 templateNames = append(templateNames, template.Name)
66 }
67
68 inv, root := clitest.New(t, append([]string{"templates", "delete", "--yes"}, templateNames...)...)
69 clitest.SetupConfig(t, templateAdmin, root)
70 require.NoError(t, inv.Run())
71
72 for _, template := range templates {
73 _, err := client.Template(context.Background(), template.ID)
74 require.Error(t, err, "template should not exist")
75 }
76 })
77

Callers

nothing calls this directly

Calls 15

NewFunction · 0.92
CreateFirstUserFunction · 0.92
CreateAnotherUserFunction · 0.92
RoleTemplateAdminFunction · 0.92
CreateTemplateVersionFunction · 0.92
CreateTemplateFunction · 0.92
NewFunction · 0.92
SetupConfigFunction · 0.92
NewFunction · 0.92
WriteLineMethod · 0.80
TemplateMethod · 0.80

Tested by

no test coverage detected