2021-05-11 23:37:07 +02:00
|
|
|
package plans
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"testing"
|
|
|
|
|
2021-06-24 23:53:43 +02:00
|
|
|
"github.com/hashicorp/terraform/internal/lang/marks"
|
2021-05-11 23:37:07 +02:00
|
|
|
"github.com/zclconf/go-cty/cty"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestChangeEncodeSensitive(t *testing.T) {
|
|
|
|
testVals := []cty.Value{
|
|
|
|
cty.ObjectVal(map[string]cty.Value{
|
2021-06-24 23:53:43 +02:00
|
|
|
"ding": cty.StringVal("dong").Mark(marks.Sensitive),
|
2021-05-11 23:37:07 +02:00
|
|
|
}),
|
|
|
|
cty.StringVal("bleep").Mark("bloop"),
|
|
|
|
cty.ListVal([]cty.Value{cty.UnknownVal(cty.String).Mark("sup?")}),
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, v := range testVals {
|
|
|
|
t.Run(fmt.Sprintf("%#v", v), func(t *testing.T) {
|
|
|
|
change := Change{
|
|
|
|
Before: cty.NullVal(v.Type()),
|
|
|
|
After: v,
|
|
|
|
}
|
|
|
|
|
|
|
|
encoded, err := change.Encode(v.Type())
|
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
decoded, err := encoded.Decode(v.Type())
|
|
|
|
if err != nil {
|
|
|
|
t.Fatal(err)
|
|
|
|
}
|
|
|
|
|
|
|
|
if !v.RawEquals(decoded.After) {
|
|
|
|
t.Fatalf("%#v != %#v\n", decoded.After, v)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|