@@ -2,11 +2,14 @@ package cli_test
2
2
3
3
import (
4
4
"context"
5
+ "fmt"
6
+ "strings"
5
7
"testing"
6
8
7
9
"github.com/stretchr/testify/require"
8
10
9
11
"github.com/coder/coder/cli/clitest"
12
+ "github.com/coder/coder/cli/cliui"
10
13
"github.com/coder/coder/coderd/coderdtest"
11
14
"github.com/coder/coder/codersdk"
12
15
"github.com/coder/coder/pty/ptytest"
@@ -32,7 +35,7 @@ func TestTemplateDelete(t *testing.T) {
32
35
require .Error (t , err , "template should not exist" )
33
36
})
34
37
35
- t .Run ("Multiple" , func (t * testing.T ) {
38
+ t .Run ("Multiple --yes " , func (t * testing.T ) {
36
39
t .Parallel ()
37
40
38
41
client := coderdtest .New (t , & coderdtest.Options {IncludeProvisionerD : true })
@@ -49,7 +52,7 @@ func TestTemplateDelete(t *testing.T) {
49
52
templateNames = append (templateNames , template .Name )
50
53
}
51
54
52
- cmd , root := clitest .New (t , append ([]string {"templates" , "delete" }, templateNames ... )... )
55
+ cmd , root := clitest .New (t , append ([]string {"templates" , "delete" , "--yes" }, templateNames ... )... )
53
56
clitest .SetupConfig (t , client , root )
54
57
require .NoError (t , cmd .Execute ())
55
58
@@ -59,6 +62,45 @@ func TestTemplateDelete(t *testing.T) {
59
62
}
60
63
})
61
64
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
+
62
104
t .Run ("Selector" , func (t * testing.T ) {
63
105
t .Parallel ()
64
106
0 commit comments