Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 16927d2

Browse files
committed
CLI update tets
1 parent a688d94 commit 16927d2

File tree

1 file changed

+67
-0
lines changed

1 file changed

+67
-0
lines changed

cli/update_test.go

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -424,4 +424,71 @@ func TestUpdateValidateRichParameters(t *testing.T) {
424424
}
425425
<-doneChan
426426
})
427+
428+
t.Run("RequiredParameterAdded", func(t *testing.T) {
429+
t.Parallel()
430+
431+
client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
432+
user := coderdtest.CreateFirstUser(t, client)
433+
434+
// Upload the initial template
435+
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, prepareEchoResponses(stringRichParameters))
436+
coderdtest.AwaitTemplateVersionJob(t, client, version.ID)
437+
template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
438+
439+
tempDir := t.TempDir()
440+
removeTmpDirUntilSuccessAfterTest(t, tempDir)
441+
parameterFile, _ := os.CreateTemp(tempDir, "testParameterFile*.yaml")
442+
_, _ = parameterFile.WriteString(
443+
stringParameterName + ": " + stringParameterValue)
444+
445+
// Create workspace
446+
cmd, root := clitest.New(t, "create", "my-workspace", "--template", template.Name, "--rich-parameter-file", parameterFile.Name(), "-y")
447+
clitest.SetupConfig(t, client, root)
448+
err := cmd.Execute()
449+
require.NoError(t, err)
450+
451+
// Modify template
452+
const addedParameterName = "added_parameter"
453+
454+
var modifiedParameters []*proto.RichParameter
455+
modifiedParameters = append(modifiedParameters, stringRichParameters...)
456+
modifiedParameters = append(modifiedParameters, &proto.RichParameter{
457+
// Required parameter
458+
Name: addedParameterName,
459+
Type: "string",
460+
Mutable: true,
461+
})
462+
version = coderdtest.UpdateTemplateVersion(t, client, user.OrganizationID, prepareEchoResponses(modifiedParameters), template.ID)
463+
coderdtest.AwaitTemplateVersionJob(t, client, version.ID)
464+
err = client.UpdateActiveTemplateVersion(context.Background(), template.ID, codersdk.UpdateActiveTemplateVersion{
465+
ID: version.ID,
466+
})
467+
require.NoError(t, err)
468+
469+
// Update the workspace
470+
cmd, root = clitest.New(t, "update", "my-workspace")
471+
clitest.SetupConfig(t, client, root)
472+
doneChan := make(chan struct{})
473+
pty := ptytest.New(t)
474+
cmd.SetIn(pty.Input())
475+
cmd.SetOut(pty.Output())
476+
go func() {
477+
defer close(doneChan)
478+
err := cmd.Execute()
479+
assert.NoError(t, err)
480+
}()
481+
482+
matches := []string{
483+
"added_parameter", "",
484+
`Enter a value (default: "")`, "abc",
485+
}
486+
for i := 0; i < len(matches); i += 2 {
487+
match := matches[i]
488+
value := matches[i+1]
489+
pty.ExpectMatch(match)
490+
pty.WriteLine(value)
491+
}
492+
<-doneChan
493+
})
427494
}

0 commit comments

Comments
 (0)