Skip to content

Commit 4deaad0

Browse files
committed
WIP
1 parent c5f8ee9 commit 4deaad0

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

cli/create_test.go

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -416,6 +416,39 @@ func TestCreateWithRichParameters(t *testing.T) {
416416
assert.ErrorContains(t, err, "parameter \""+wrongFirstParameterName+"\" is not present in the template")
417417
assert.ErrorContains(t, err, "Did you mean: "+firstParameterName)
418418
})
419+
420+
t.Run("CopyParameters", func(t *testing.T) {
421+
t.Parallel()
422+
423+
client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
424+
owner := coderdtest.CreateFirstUser(t, client)
425+
member, _ := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID)
426+
version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, echoResponses)
427+
coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
428+
429+
template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
430+
431+
// Firstly, create a regular workspace using template with parameters.
432+
inv, root := clitest.New(t, "create", "my-workspace", "--template", template.Name, "-y",
433+
"--parameter", fmt.Sprintf("%s=%s", firstParameterName, firstParameterValue),
434+
"--parameter", fmt.Sprintf("%s=%s", secondParameterName, secondParameterValue),
435+
"--parameter", fmt.Sprintf("%s=%s", immutableParameterName, immutableParameterValue))
436+
clitest.SetupConfig(t, member, root)
437+
pty := ptytest.New(t).Attach(inv)
438+
inv.Stdout = pty.Output()
439+
inv.Stderr = pty.Output()
440+
err := inv.Run()
441+
require.NoError(t, err, "can't create first workspace")
442+
443+
// Secondly, create a new workspace using parameters from the previous workspace.
444+
inv, root = clitest.New(t, "create", "--copy-parameters", "my-workspace", "other-workspace", "-y")
445+
clitest.SetupConfig(t, member, root)
446+
pty = ptytest.New(t).Attach(inv)
447+
inv.Stdout = pty.Output()
448+
inv.Stderr = pty.Output()
449+
err = inv.Run()
450+
require.NoError(t, err, "can't create a workspace based on the source workspace")
451+
})
419452
}
420453

421454
func TestCreateValidateRichParameters(t *testing.T) {

0 commit comments

Comments
 (0)