Skip to content

Commit

Permalink
Merge pull request #36012 from hashicorp/jbardin/issensitive-unknown
Browse files Browse the repository at this point in the history
`issensitive` must return unknown for unknown args without `sensitive`
  • Loading branch information
jbardin authored Nov 15, 2024
2 parents dda25d1 + b4c24c2 commit bf64925
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 12 deletions.
10 changes: 8 additions & 2 deletions internal/lang/funcs/sensitive.go
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,14 @@ var IssensitiveFunc = function.New(&function.Spec{
return cty.Bool, nil
},
Impl: func(args []cty.Value, retType cty.Type) (cty.Value, error) {
s := args[0].HasMark(marks.Sensitive)
return cty.BoolVal(s), nil
switch v := args[0]; {
case v.HasMark(marks.Sensitive):
return cty.True, nil
case !v.IsKnown():
return cty.UnknownVal(cty.Bool), nil
default:
return cty.False, nil
}
},
})

Expand Down
20 changes: 10 additions & 10 deletions internal/lang/funcs/sensitive_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -166,47 +166,47 @@ func TestNonsensitive(t *testing.T) {
func TestIssensitive(t *testing.T) {
tests := []struct {
Input cty.Value
Sensitive bool
Sensitive cty.Value
WantErr string
}{
{
cty.NumberIntVal(1).Mark(marks.Sensitive),
true,
cty.True,
``,
},
{
cty.NumberIntVal(1),
false,
cty.False,
``,
},
{
cty.DynamicVal.Mark(marks.Sensitive),
true,
cty.True,
``,
},
{
cty.UnknownVal(cty.String).Mark(marks.Sensitive),
true,
cty.True,
``,
},
{
cty.NullVal(cty.EmptyObject).Mark(marks.Sensitive),
true,
cty.True,
``,
},
{
cty.NullVal(cty.String),
false,
cty.False,
``,
},
{
cty.DynamicVal,
false,
cty.UnknownVal(cty.Bool),
``,
},
{
cty.UnknownVal(cty.String),
false,
cty.UnknownVal(cty.Bool),
``,
},
}
Expand All @@ -227,7 +227,7 @@ func TestIssensitive(t *testing.T) {
t.Fatalf("unexpected error: %s", err)
}

if (got.True() && !test.Sensitive) || (got.False() && test.Sensitive) {
if !got.RawEquals(test.Sensitive) {
t.Errorf("wrong result \ngot: %#v\nwant: %#v", got, test.Sensitive)
}
})
Expand Down

0 comments on commit bf64925

Please sign in to comment.