MCPcopy Index your code
hub / github.com/coder/coder / TestUpdateValidateRichParameters

Function TestUpdateValidateRichParameters

cli/update_test.go:397–1104  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

395}
396
397func TestUpdateValidateRichParameters(t *testing.T) {
398 t.Parallel()
399
400 const (
401 stringParameterName = "string_parameter"
402 stringParameterValue = "abc"
403
404 numberParameterName = "number_parameter"
405 numberParameterValue = "7"
406
407 boolParameterName = "bool_parameter"
408 boolParameterValue = "true"
409 )
410
411 numberRichParameters := []*proto.RichParameter{
412 {Name: numberParameterName, Type: "number", Mutable: true, ValidationMin: ptr.Ref(int32(3)), ValidationMax: ptr.Ref(int32(10))},
413 }
414
415 stringRichParameters := []*proto.RichParameter{
416 {Name: stringParameterName, Type: "string", Mutable: true, ValidationRegex: "^[a-z]+$", ValidationError: "this is error"},
417 }
418
419 boolRichParameters := []*proto.RichParameter{
420 {Name: boolParameterName, Type: "bool", Mutable: true},
421 }
422
423 t.Run("ValidateString", func(t *testing.T) {
424 t.Parallel()
425
426 client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
427 owner := coderdtest.CreateFirstUser(t, client)
428 member, _ := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID)
429 version := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, prepareEchoResponses(stringRichParameters))
430 coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
431 template := coderdtest.CreateTemplate(t, client, owner.OrganizationID, version.ID)
432
433 tempDir := t.TempDir()
434 removeTmpDirUntilSuccessAfterTest(t, tempDir)
435 parameterFile, _ := os.CreateTemp(tempDir, "testParameterFile*.yaml")
436 _, _ = parameterFile.WriteString(
437 stringParameterName + ": " + stringParameterValue)
438
439 inv, root := clitest.New(t, "create", "my-workspace", "--template", template.Name, "--rich-parameter-file", parameterFile.Name(), "-y")
440 clitest.SetupConfig(t, member, root)
441 err := inv.Run()
442 require.NoError(t, err)
443
444 ctx := testutil.Context(t, testutil.WaitLong)
445 inv, root = clitest.New(t, "update", "my-workspace", "--always-prompt")
446 inv = inv.WithContext(ctx)
447 clitest.SetupConfig(t, member, root)
448 doneChan := make(chan struct{})
449 pty := ptytest.New(t).Attach(inv)
450 go func() {
451 defer close(doneChan)
452 err := inv.Run()
453 assert.NoError(t, err)
454 }()

Callers

nothing calls this directly

Calls 15

RefFunction · 0.92
NewFunction · 0.92
CreateFirstUserFunction · 0.92
CreateAnotherUserFunction · 0.92
CreateTemplateVersionFunction · 0.92
CreateTemplateFunction · 0.92
NewFunction · 0.92
SetupConfigFunction · 0.92
ContextFunction · 0.92
NewFunction · 0.92
TryReceiveFunction · 0.92

Tested by

no test coverage detected