Skip to content

Commit bdeec4b

Browse files
committed
test both confirmation of delete and --yes with no confirmation
1 parent f10c3b8 commit bdeec4b

File tree

1 file changed

+44
-2
lines changed

1 file changed

+44
-2
lines changed

cli/templatedelete_test.go

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@ package cli_test
22

33
import (
44
"context"
5+
"fmt"
6+
"strings"
57
"testing"
68

79
"github.com/stretchr/testify/require"
810

911
"github.com/coder/coder/cli/clitest"
12+
"github.com/coder/coder/cli/cliui"
1013
"github.com/coder/coder/coderd/coderdtest"
1114
"github.com/coder/coder/codersdk"
1215
"github.com/coder/coder/pty/ptytest"
@@ -32,7 +35,7 @@ func TestTemplateDelete(t *testing.T) {
3235
require.Error(t, err, "template should not exist")
3336
})
3437

35-
t.Run("Multiple", func(t *testing.T) {
38+
t.Run("Multiple --yes", func(t *testing.T) {
3639
t.Parallel()
3740

3841
client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerD: true})
@@ -49,7 +52,7 @@ func TestTemplateDelete(t *testing.T) {
4952
templateNames = append(templateNames, template.Name)
5053
}
5154

52-
cmd, root := clitest.New(t, append([]string{"templates", "delete"}, templateNames...)...)
55+
cmd, root := clitest.New(t, append([]string{"templates", "delete", "--yes"}, templateNames...)...)
5356
clitest.SetupConfig(t, client, root)
5457
require.NoError(t, cmd.Execute())
5558

@@ -59,6 +62,45 @@ func TestTemplateDelete(t *testing.T) {
5962
}
6063
})
6164

65+
t.Run("Multiple prompted", func(t *testing.T) {
66+
t.Parallel()
67+
68+
client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerD: true})
69+
user := coderdtest.CreateFirstUser(t, client)
70+
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil)
71+
_ = coderdtest.AwaitTemplateVersionJob(t, client, version.ID)
72+
templates := []codersdk.Template{
73+
coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID),
74+
coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID),
75+
coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID),
76+
}
77+
templateNames := []string{}
78+
for _, template := range templates {
79+
templateNames = append(templateNames, template.Name)
80+
}
81+
82+
cmd, root := clitest.New(t, append([]string{"templates", "delete"}, templateNames...)...)
83+
clitest.SetupConfig(t, client, root)
84+
pty := ptytest.New(t)
85+
cmd.SetIn(pty.Input())
86+
cmd.SetOut(pty.Output())
87+
88+
execDone := make(chan error)
89+
go func() {
90+
execDone <- cmd.Execute()
91+
}()
92+
93+
pty.ExpectMatch(fmt.Sprintf("Delete these templates: %s?", cliui.Styles.Code.Render(strings.Join(templateNames, ", "))))
94+
pty.WriteLine("yes")
95+
96+
for _, template := range templates {
97+
_, err := client.Template(context.Background(), template.ID)
98+
require.Error(t, err, "template should not exist")
99+
}
100+
101+
require.NoError(t, <-execDone)
102+
})
103+
62104
t.Run("Selector", func(t *testing.T) {
63105
t.Parallel()
64106

0 commit comments

Comments
 (0)