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

Function TestDynamicParametersWithTerraformValues

coderd/parameters_test.go:77–389  ·  view source on GitHub ↗

TestDynamicParametersWithTerraformValues is for testing the websocket flow of dynamic parameters. No workspaces are created.

(t *testing.T)

Source from the content-addressed store, hash-verified

75// TestDynamicParametersWithTerraformValues is for testing the websocket flow of
76// dynamic parameters. No workspaces are created.
77func TestDynamicParametersWithTerraformValues(t *testing.T) {
78 t.Parallel()
79
80 t.Run("OK_Modules", func(t *testing.T) {
81 t.Parallel()
82
83 dynamicParametersTerraformSource, err := os.ReadFile("testdata/parameters/modules/main.tf")
84 require.NoError(t, err)
85
86 modulesArchive, skipped, err := terraform.GetModulesArchive(os.DirFS("testdata/parameters/modules"))
87 require.NoError(t, err)
88 require.Len(t, skipped, 0)
89
90 setup := setupDynamicParamsTest(t, setupDynamicParamsTestParams{
91 provisionerDaemonVersion: provProto.CurrentVersion.String(),
92 mainTF: dynamicParametersTerraformSource,
93 modulesArchive: modulesArchive,
94 plan: nil,
95 static: nil,
96 })
97
98 ctx := testutil.Context(t, testutil.WaitShort)
99 stream := setup.stream
100 previews := stream.Chan()
101
102 // Should see the output of the module represented
103 preview := testutil.RequireReceive(ctx, t, previews)
104 require.Equal(t, -1, preview.ID)
105 require.Empty(t, preview.Diagnostics)
106
107 require.Len(t, preview.Parameters, 2)
108 coderdtest.AssertParameter(t, "jetbrains_ide", preview.Parameters).
109 Exists().Value("CL")
110 coderdtest.AssertParameter(t, "region", preview.Parameters).
111 Exists().Value("na")
112 })
113
114 // OldProvisioners use the static parameters in the dynamic param flow
115 t.Run("OldProvisioner", func(t *testing.T) {
116 t.Parallel()
117
118 const defaultValue = "PS"
119 setup := setupDynamicParamsTest(t, setupDynamicParamsTestParams{
120 provisionerDaemonVersion: "1.4",
121 mainTF: nil,
122 modulesArchive: nil,
123 plan: nil,
124 static: []*proto.RichParameter{
125 {
126 Name: "jetbrains_ide",
127 Type: "string",
128 DefaultValue: defaultValue,
129 Icon: "",
130 Options: []*proto.RichParameterOption{
131 {
132 Name: "PHPStorm",
133 Description: "",
134 Value: defaultValue,

Callers

nothing calls this directly

Calls 15

GetModulesArchiveFunction · 0.92
ContextFunction · 0.92
RequireReceiveFunction · 0.92
AssertParameterFunction · 0.92
NewDBFunction · 0.92
CreateWorkspaceFunction · 0.92
setupDynamicParamsTestFunction · 0.85
SetRejectMethod · 0.80
CreateWorkspaceBuildMethod · 0.80
RunMethod · 0.65

Tested by

no test coverage detected