52 lines
1.2 KiB
Go
52 lines
1.2 KiB
Go
package funcs
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/hashicorp/terraform/internal/lang/marks"
|
|
"github.com/zclconf/go-cty/cty"
|
|
)
|
|
|
|
func TestRedactIfSensitive(t *testing.T) {
|
|
testCases := map[string]struct {
|
|
value interface{}
|
|
marks []cty.ValueMarks
|
|
want string
|
|
}{
|
|
"sensitive string": {
|
|
value: "foo",
|
|
marks: []cty.ValueMarks{cty.NewValueMarks(marks.Sensitive)},
|
|
want: "(sensitive value)",
|
|
},
|
|
"marked non-sensitive string": {
|
|
value: "foo",
|
|
marks: []cty.ValueMarks{cty.NewValueMarks("boop")},
|
|
want: `"foo"`,
|
|
},
|
|
"sensitive string with other marks": {
|
|
value: "foo",
|
|
marks: []cty.ValueMarks{cty.NewValueMarks("boop"), cty.NewValueMarks(marks.Sensitive)},
|
|
want: "(sensitive value)",
|
|
},
|
|
"sensitive number": {
|
|
value: 12345,
|
|
marks: []cty.ValueMarks{cty.NewValueMarks(marks.Sensitive)},
|
|
want: "(sensitive value)",
|
|
},
|
|
"non-sensitive number": {
|
|
value: 12345,
|
|
marks: []cty.ValueMarks{},
|
|
want: "12345",
|
|
},
|
|
}
|
|
|
|
for name, tc := range testCases {
|
|
t.Run(name, func(t *testing.T) {
|
|
got := redactIfSensitive(tc.value, tc.marks...)
|
|
if got != tc.want {
|
|
t.Errorf("wrong result, got %v, want %v", got, tc.want)
|
|
}
|
|
})
|
|
}
|
|
}
|