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

Function TestDynamicParameterBuild

enterprise/coderd/dynamicparameters_test.go:24–426  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

22)
23
24func TestDynamicParameterBuild(t *testing.T) {
25 t.Parallel()
26
27 owner, _, _, first := coderdenttest.NewWithAPI(t, &coderdenttest.Options{
28 Options: &coderdtest.Options{
29 IncludeProvisionerDaemon: true,
30 },
31 LicenseOptions: &coderdenttest.LicenseOptions{
32 Features: license.Features{
33 codersdk.FeatureTemplateRBAC: 1,
34 },
35 },
36 })
37
38 orgID := first.OrganizationID
39
40 templateAdmin, templateAdminData := coderdtest.CreateAnotherUser(t, owner, orgID, rbac.ScopedRoleOrgTemplateAdmin(orgID))
41
42 coderdtest.CreateGroup(t, owner, orgID, "developer")
43 coderdtest.CreateGroup(t, owner, orgID, "admin", templateAdminData)
44 coderdtest.CreateGroup(t, owner, orgID, "auditor")
45
46 // Create a set of templates to test with
47 numberValidation, _ := coderdtest.DynamicParameterTemplate(t, templateAdmin, orgID, coderdtest.DynamicParameterTemplateParams{
48 MainTF: string(must(os.ReadFile("testdata/parameters/numbers/main.tf"))),
49 })
50
51 regexValidation, _ := coderdtest.DynamicParameterTemplate(t, templateAdmin, orgID, coderdtest.DynamicParameterTemplateParams{
52 MainTF: string(must(os.ReadFile("testdata/parameters/regex/main.tf"))),
53 })
54
55 ephemeralValidation, _ := coderdtest.DynamicParameterTemplate(t, templateAdmin, orgID, coderdtest.DynamicParameterTemplateParams{
56 MainTF: string(must(os.ReadFile("testdata/parameters/ephemeral/main.tf"))),
57 })
58
59 // complexValidation does conditional parameters, conditional options, and more.
60 complexValidation, _ := coderdtest.DynamicParameterTemplate(t, templateAdmin, orgID, coderdtest.DynamicParameterTemplateParams{
61 MainTF: string(must(os.ReadFile("testdata/parameters/dynamic/main.tf"))),
62 })
63
64 t.Run("NumberValidation", func(t *testing.T) {
65 t.Parallel()
66
67 t.Run("OK", func(t *testing.T) {
68 t.Parallel()
69 ctx := testutil.Context(t, testutil.WaitShort)
70 wrk, err := templateAdmin.CreateUserWorkspace(ctx, codersdk.Me, codersdk.CreateWorkspaceRequest{
71 TemplateID: numberValidation.ID,
72 Name: coderdtest.RandomUsername(t),
73 RichParameterValues: []codersdk.WorkspaceBuildParameter{
74 {Name: "number", Value: `7`},
75 },
76 })
77 require.NoError(t, err)
78 coderdtest.AwaitWorkspaceBuildJobCompleted(t, templateAdmin, wrk.LatestBuild.ID)
79 })
80
81 t.Run("TooLow", func(t *testing.T) {

Callers

nothing calls this directly

Calls 15

NewWithAPIFunction · 0.92
CreateAnotherUserFunction · 0.92
CreateGroupFunction · 0.92
DynamicParameterTemplateFunction · 0.92
ContextFunction · 0.92
RandomUsernameFunction · 0.92
CreateWorkspaceBuildMethod · 0.80
DeletedWorkspaceMethod · 0.80

Tested by

no test coverage detected