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

Skip to content

Commit d582472

Browse files
committed
OptionalParameterAdded
1 parent 16927d2 commit d582472

File tree

1 file changed

+76
-5
lines changed

1 file changed

+76
-5
lines changed

cli/update_test.go

Lines changed: 76 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -454,10 +454,10 @@ func TestUpdateValidateRichParameters(t *testing.T) {
454454
var modifiedParameters []*proto.RichParameter
455455
modifiedParameters = append(modifiedParameters, stringRichParameters...)
456456
modifiedParameters = append(modifiedParameters, &proto.RichParameter{
457-
// Required parameter
458-
Name: addedParameterName,
459-
Type: "string",
460-
Mutable: true,
457+
Name: addedParameterName,
458+
Type: "string",
459+
Mutable: true,
460+
Required: true,
461461
})
462462
version = coderdtest.UpdateTemplateVersion(t, client, user.OrganizationID, prepareEchoResponses(modifiedParameters), template.ID)
463463
coderdtest.AwaitTemplateVersionJob(t, client, version.ID)
@@ -481,7 +481,78 @@ func TestUpdateValidateRichParameters(t *testing.T) {
481481

482482
matches := []string{
483483
"added_parameter", "",
484-
`Enter a value (default: "")`, "abc",
484+
"Enter a value:", "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+
491+
if value != "" {
492+
pty.WriteLine(value)
493+
}
494+
}
495+
<-doneChan
496+
})
497+
498+
t.Run("OptionalParameterAdded", func(t *testing.T) {
499+
t.Parallel()
500+
501+
client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
502+
user := coderdtest.CreateFirstUser(t, client)
503+
504+
// Upload the initial template
505+
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, prepareEchoResponses(stringRichParameters))
506+
coderdtest.AwaitTemplateVersionJob(t, client, version.ID)
507+
template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
508+
509+
tempDir := t.TempDir()
510+
removeTmpDirUntilSuccessAfterTest(t, tempDir)
511+
parameterFile, _ := os.CreateTemp(tempDir, "testParameterFile*.yaml")
512+
_, _ = parameterFile.WriteString(
513+
stringParameterName + ": " + stringParameterValue)
514+
515+
// Create workspace
516+
cmd, root := clitest.New(t, "create", "my-workspace", "--template", template.Name, "--rich-parameter-file", parameterFile.Name(), "-y")
517+
clitest.SetupConfig(t, client, root)
518+
err := cmd.Execute()
519+
require.NoError(t, err)
520+
521+
// Modify template
522+
const addedParameterName = "added_parameter"
523+
524+
var modifiedParameters []*proto.RichParameter
525+
modifiedParameters = append(modifiedParameters, stringRichParameters...)
526+
modifiedParameters = append(modifiedParameters, &proto.RichParameter{
527+
Name: addedParameterName,
528+
Type: "string",
529+
Mutable: true,
530+
DefaultValue: "foobar",
531+
Required: false,
532+
})
533+
version = coderdtest.UpdateTemplateVersion(t, client, user.OrganizationID, prepareEchoResponses(modifiedParameters), template.ID)
534+
coderdtest.AwaitTemplateVersionJob(t, client, version.ID)
535+
err = client.UpdateActiveTemplateVersion(context.Background(), template.ID, codersdk.UpdateActiveTemplateVersion{
536+
ID: version.ID,
537+
})
538+
require.NoError(t, err)
539+
540+
// Update the workspace
541+
cmd, root = clitest.New(t, "update", "my-workspace")
542+
clitest.SetupConfig(t, client, root)
543+
doneChan := make(chan struct{})
544+
pty := ptytest.New(t)
545+
cmd.SetIn(pty.Input())
546+
cmd.SetOut(pty.Output())
547+
go func() {
548+
defer close(doneChan)
549+
err := cmd.Execute()
550+
assert.NoError(t, err)
551+
}()
552+
553+
matches := []string{
554+
"added_parameter", "",
555+
`Enter a value (default: "foobar")`, "abc",
485556
}
486557
for i := 0; i < len(matches); i += 2 {
487558
match := matches[i]

0 commit comments

Comments
 (0)