Skip to content

Commit 5e11687

Browse files
committed
feat(cli): add back test on deprecated flags build-option and build-options
1 parent 6b138a6 commit 5e11687

File tree

1 file changed

+108
-0
lines changed

1 file changed

+108
-0
lines changed

cli/restart_test.go

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,114 @@ func TestRestart(t *testing.T) {
167167
Value: ephemeralParameterValue,
168168
})
169169
})
170+
171+
t.Run("with deprecated build-options flag", func(t *testing.T) {
172+
t.Parallel()
173+
174+
client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
175+
owner := coderdtest.CreateFirstUser(t, client)
176+
member, memberUser := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID)
177+
version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, echoResponses)
178+
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
179+
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
180+
workspace := coderdtest.CreateWorkspace(t, member, template.ID)
181+
coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
182+
183+
inv, root := clitest.New(t, "restart", workspace.Name, "--build-options")
184+
clitest.SetupConfig(t, member, root)
185+
doneChan := make(chan struct{})
186+
pty := ptytest.New(t).Attach(inv)
187+
go func() {
188+
defer close(doneChan)
189+
err := inv.Run()
190+
assert.NoError(t, err)
191+
}()
192+
193+
matches := []string{
194+
ephemeralParameterDescription, ephemeralParameterValue,
195+
"Restart workspace?", "yes",
196+
"Stopping workspace", "",
197+
"Starting workspace", "",
198+
"workspace has been restarted", "",
199+
}
200+
for i := 0; i < len(matches); i += 2 {
201+
match := matches[i]
202+
value := matches[i+1]
203+
pty.ExpectMatch(match)
204+
205+
if value != "" {
206+
pty.WriteLine(value)
207+
}
208+
}
209+
<-doneChan
210+
211+
// Verify if build option is set
212+
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitShort)
213+
defer cancel()
214+
215+
workspace, err := client.WorkspaceByOwnerAndName(ctx, memberUser.ID.String(), workspace.Name, codersdk.WorkspaceOptions{})
216+
require.NoError(t, err)
217+
actualParameters, err := client.WorkspaceBuildParameters(ctx, workspace.LatestBuild.ID)
218+
require.NoError(t, err)
219+
require.Contains(t, actualParameters, codersdk.WorkspaceBuildParameter{
220+
Name: ephemeralParameterName,
221+
Value: ephemeralParameterValue,
222+
})
223+
})
224+
225+
t.Run("with deprecated build-option flag", func(t *testing.T) {
226+
t.Parallel()
227+
228+
client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
229+
owner := coderdtest.CreateFirstUser(t, client)
230+
member, memberUser := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID)
231+
version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, echoResponses)
232+
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
233+
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
234+
workspace := coderdtest.CreateWorkspace(t, member, template.ID)
235+
coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
236+
237+
inv, root := clitest.New(t, "restart", workspace.Name,
238+
"--build-option", fmt.Sprintf("%s=%s", ephemeralParameterName, ephemeralParameterValue))
239+
clitest.SetupConfig(t, member, root)
240+
doneChan := make(chan struct{})
241+
pty := ptytest.New(t).Attach(inv)
242+
go func() {
243+
defer close(doneChan)
244+
err := inv.Run()
245+
assert.NoError(t, err)
246+
}()
247+
248+
matches := []string{
249+
"Restart workspace?", "yes",
250+
"Stopping workspace", "",
251+
"Starting workspace", "",
252+
"workspace has been restarted", "",
253+
}
254+
for i := 0; i < len(matches); i += 2 {
255+
match := matches[i]
256+
value := matches[i+1]
257+
pty.ExpectMatch(match)
258+
259+
if value != "" {
260+
pty.WriteLine(value)
261+
}
262+
}
263+
<-doneChan
264+
265+
// Verify if build option is set
266+
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitShort)
267+
defer cancel()
268+
269+
workspace, err := client.WorkspaceByOwnerAndName(ctx, memberUser.ID.String(), workspace.Name, codersdk.WorkspaceOptions{})
270+
require.NoError(t, err)
271+
actualParameters, err := client.WorkspaceBuildParameters(ctx, workspace.LatestBuild.ID)
272+
require.NoError(t, err)
273+
require.Contains(t, actualParameters, codersdk.WorkspaceBuildParameter{
274+
Name: ephemeralParameterName,
275+
Value: ephemeralParameterValue,
276+
})
277+
})
170278
}
171279

172280
func TestRestartWithParameters(t *testing.T) {

0 commit comments

Comments
 (0)