Skip to content

Commit 813a64f

Browse files
committed
cli: create: add unit tests
1 parent 2f7b939 commit 813a64f

File tree

1 file changed

+65
-1
lines changed

1 file changed

+65
-1
lines changed

cli/create_test.go

Lines changed: 65 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,17 @@ func TestCreate(t *testing.T) {
2525
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil)
2626
coderdtest.AwaitTemplateVersionJob(t, client, version.ID)
2727
template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
28-
cmd, root := clitest.New(t, "create", "my-workspace", "--template", template.Name)
28+
args := []string{
29+
"create",
30+
"my-workspace",
31+
"--template", template.Name,
32+
"--tz", "US/Central",
33+
"--autostart-minute", "0",
34+
"--autostart-hour", "*/2",
35+
"--autostart-day-of-week", "MON-FRI",
36+
"--ttl", "8h",
37+
}
38+
cmd, root := clitest.New(t, args...)
2939
clitest.SetupConfig(t, client, root)
3040
doneChan := make(chan struct{})
3141
pty := ptytest.New(t)
@@ -48,6 +58,60 @@ func TestCreate(t *testing.T) {
4858
<-doneChan
4959
})
5060

61+
t.Run("CreateErrInvalidTz", func(t *testing.T) {
62+
t.Parallel()
63+
client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerD: true})
64+
user := coderdtest.CreateFirstUser(t, client)
65+
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil)
66+
coderdtest.AwaitTemplateVersionJob(t, client, version.ID)
67+
template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
68+
args := []string{
69+
"create",
70+
"my-workspace",
71+
"--template", template.Name,
72+
"--tz", "invalid",
73+
}
74+
cmd, root := clitest.New(t, args...)
75+
clitest.SetupConfig(t, client, root)
76+
doneChan := make(chan struct{})
77+
pty := ptytest.New(t)
78+
cmd.SetIn(pty.Input())
79+
cmd.SetOut(pty.Output())
80+
go func() {
81+
defer close(doneChan)
82+
err := cmd.Execute()
83+
require.EqualError(t, err, "Invalid workspace autostart timezone: unknown time zone invalid")
84+
}()
85+
<-doneChan
86+
})
87+
88+
t.Run("CreateErrInvalidTTL", func(t *testing.T) {
89+
t.Parallel()
90+
client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerD: true})
91+
user := coderdtest.CreateFirstUser(t, client)
92+
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil)
93+
coderdtest.AwaitTemplateVersionJob(t, client, version.ID)
94+
template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
95+
args := []string{
96+
"create",
97+
"my-workspace",
98+
"--template", template.Name,
99+
"--ttl", "0s",
100+
}
101+
cmd, root := clitest.New(t, args...)
102+
clitest.SetupConfig(t, client, root)
103+
doneChan := make(chan struct{})
104+
pty := ptytest.New(t)
105+
cmd.SetIn(pty.Input())
106+
cmd.SetOut(pty.Output())
107+
go func() {
108+
defer close(doneChan)
109+
err := cmd.Execute()
110+
require.EqualError(t, err, "TTL must be at least 1 minute")
111+
}()
112+
<-doneChan
113+
})
114+
51115
t.Run("CreateFromListWithSkip", func(t *testing.T) {
52116
t.Parallel()
53117
client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerD: true})

0 commit comments

Comments
 (0)