TestDynamicParametersWithTerraformValues is for testing the websocket flow of dynamic parameters. No workspaces are created.
(t *testing.T)
| 75 | // TestDynamicParametersWithTerraformValues is for testing the websocket flow of |
| 76 | // dynamic parameters. No workspaces are created. |
| 77 | func 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, |
nothing calls this directly
no test coverage detected