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 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 +} +