From b4ea794dc8c1f6df7f545e887eb86ba7f77f3f51 Mon Sep 17 00:00:00 2001 From: Steven Masley Date: Wed, 28 May 2025 10:43:57 -0500 Subject: [PATCH 1/2] chore: do not change the form type for an invalid value --- extract/parameter.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/extract/parameter.go b/extract/parameter.go index bf66319..3b5f1d0 100644 --- a/extract/parameter.go +++ b/extract/parameter.go @@ -147,9 +147,6 @@ func ParameterFromBlock(block *terraform.Block) (*types.Parameter, hcl.Diagnosti } usageDiags := ParameterUsageDiagnostics(p) - if usageDiags.HasErrors() { - p.FormType = provider.ParameterFormTypeError - } diags = diags.Extend(usageDiags) // Diagnostics are scoped to the parameter From c0f92bc0b7ab02e9aafe743025f158eabb368737 Mon Sep 17 00:00:00 2001 From: Steven Masley Date: Wed, 28 May 2025 10:48:26 -0500 Subject: [PATCH 2/2] test: add unit test --- preview_test.go | 11 ++++++++++ testdata/unknownoption/main.tf | 37 ++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 testdata/unknownoption/main.tf diff --git a/preview_test.go b/preview_test.go index ec7ec6a..7fb2389 100644 --- a/preview_test.go +++ b/preview_test.go @@ -457,6 +457,17 @@ func Test_Extract(t *testing.T) { optNames("GoLand 2024.3", "IntelliJ IDEA Ultimate 2024.3", "PyCharm Professional 2024.3"), }, }, + { + name: "unknownoption", + dir: "unknownoption", + expTags: map[string]string{}, + input: preview.Input{}, + unknownTags: []string{}, + params: map[string]assertParam{ + "unknown": apWithDiags(). + errorDiagnostics("The set of options cannot be resolved"), + }, + }, } { t.Run(tc.name, func(t *testing.T) { t.Parallel() diff --git a/testdata/unknownoption/main.tf b/testdata/unknownoption/main.tf new file mode 100644 index 0000000..c1943e6 --- /dev/null +++ b/testdata/unknownoption/main.tf @@ -0,0 +1,37 @@ +# main.tf + +terraform { + required_providers { + coder = { + source = "coder/coder" + version = "2.4.0-pre0" + } + docker = { + source = "kreuzwerker/docker" + version = "3.0.2" + } + } +} + +data "coder_parameter" "unknown" { + name = "unknown" + display_name = "Unknown Option Example" + type = "string" + default = "foo" + + option { + name = "Ubuntu" + value = data.docker_registry_image.ubuntu.sha256_digest + } + + option { + name = "foo" + value = "foo" + } +} + +data "docker_registry_image" "ubuntu" { + name = "ubuntu:24.04" + // sha256_digest +} +