@@ -416,6 +416,39 @@ func TestCreateWithRichParameters(t *testing.T) {
416
416
assert .ErrorContains (t , err , "parameter \" " + wrongFirstParameterName + "\" is not present in the template" )
417
417
assert .ErrorContains (t , err , "Did you mean: " + firstParameterName )
418
418
})
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
+ })
419
452
}
420
453
421
454
func TestCreateValidateRichParameters (t * testing.T ) {
0 commit comments