From 6494aa032604259734eb99f94405b7421ccf0345 Mon Sep 17 00:00:00 2001 From: Alisdair McDiarmid Date: Fri, 13 May 2022 17:09:38 -0400 Subject: [PATCH] Include var declaration where possible --- internal/terraform/eval_variable.go | 7 +++++-- internal/terraform/eval_variable_test.go | 12 ++++++------ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/internal/terraform/eval_variable.go b/internal/terraform/eval_variable.go index 52d31ecc82b4..7de5aa1cd888 100644 --- a/internal/terraform/eval_variable.go +++ b/internal/terraform/eval_variable.go @@ -110,8 +110,11 @@ func prepareFinalInputVariableValue(addr addrs.AbsInputVariableInstance, raw *In // and not by the operator directly. In such a case, the failing secret value should not be // displayed to the operator if cfg.Sensitive { - subject = nil - detail += fmt.Sprintf("\n\n%s is marked as sensitive. Invalid value defined at %s.", addr, sourceRange.ToHCL()) + detail = fmt.Sprintf( + "The given value is not suitable for %s, which is sensitive: %s. Invalid value defined at %s.", + addr, err, sourceRange.ToHCL(), + ) + subject = cfg.DeclRange.Ptr() } } diff --git a/internal/terraform/eval_variable_test.go b/internal/terraform/eval_variable_test.go index 8ebfe0a539f7..e8786c9aa844 100644 --- a/internal/terraform/eval_variable_test.go +++ b/internal/terraform/eval_variable_test.go @@ -590,13 +590,11 @@ func TestPrepareFinalInputVariableValue(t *testing.T) { { ValueFromConfig, tfdiags.SourceRange{ - Filename: "example.tf", + Filename: "example.tfvars", Start: tfdiags.SourcePos(hcl.InitialPos), End: tfdiags.SourcePos(hcl.InitialPos), }, - `Invalid value for input variable: The given value is not suitable for var.constrained_string_sensitive_required declared at main.tf:46,3-51: string required. - -var.constrained_string_sensitive_required is marked as sensitive. Invalid value defined at example.tf:1,1-1.`, + `Invalid value for input variable: The given value is not suitable for var.constrained_string_sensitive_required, which is sensitive: string required. Invalid value defined at example.tfvars:1,1-1.`, true, }, } @@ -623,8 +621,10 @@ var.constrained_string_sensitive_required is marked as sensitive. Invalid value t.Errorf("wrong error\ngot: %s\nwant: %s", got, want) } - if test.HideSubject != (diags[0].Source().Subject == nil) { - t.Errorf("Subject (code context) should have been masked\ngot: %v", diags[0].Source().Subject) + if test.HideSubject { + if got, want := diags[0].Source().Subject.StartString(), test.SourceRange.StartString(); got == want { + t.Errorf("Subject start should have been hidden, but was %s", got) + } } }) })