github.com/iaas-resource-provision/iaas-rpc@v1.0.7-0.20211021023331-ed21f798c408/internal/plans/changes_test.go (about) 1 package plans 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/zclconf/go-cty/cty" 8 ) 9 10 func TestChangeEncodeSensitive(t *testing.T) { 11 testVals := []cty.Value{ 12 cty.ObjectVal(map[string]cty.Value{ 13 "ding": cty.StringVal("dong").Mark("sensitive"), 14 }), 15 cty.StringVal("bleep").Mark("bloop"), 16 cty.ListVal([]cty.Value{cty.UnknownVal(cty.String).Mark("sup?")}), 17 } 18 19 for _, v := range testVals { 20 t.Run(fmt.Sprintf("%#v", v), func(t *testing.T) { 21 change := Change{ 22 Before: cty.NullVal(v.Type()), 23 After: v, 24 } 25 26 encoded, err := change.Encode(v.Type()) 27 if err != nil { 28 t.Fatal(err) 29 } 30 31 decoded, err := encoded.Decode(v.Type()) 32 if err != nil { 33 t.Fatal(err) 34 } 35 36 if !v.RawEquals(decoded.After) { 37 t.Fatalf("%#v != %#v\n", decoded.After, v) 38 } 39 }) 40 } 41 }