Merge pull request #20698 from hashicorp/jbardin/null-string

don't try to treat "null" as json in diff output
pull/20715/head
James Bardin 7 years ago committed by GitHub
commit 035e89696c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -496,7 +496,9 @@ func (p *blockBodyDiffPrinter) writeValue(val cty.Value, action plans.Action, in
// Special behavior for JSON strings containing array or object
src := []byte(val.AsString())
ty, err := ctyjson.ImpliedType(src)
if err == nil && !ty.IsPrimitiveType() {
// check for the special case of "null", which decodes to nil,
// and just allow it to be printed out directly
if err == nil && !ty.IsPrimitiveType() && val.AsString() != "null" {
jv, err := ctyjson.Unmarshal(src, ty)
if err == nil {
p.buf.WriteString("jsonencode(")

@ -30,6 +30,26 @@ func TestResourceChange_primitiveTypes(t *testing.T) {
+ resource "test_instance" "example" {
+ id = (known after apply)
}
`,
},
"creation (null string)": {
Action: plans.Create,
Mode: addrs.ManagedResourceMode,
Before: cty.NullVal(cty.EmptyObject),
After: cty.ObjectVal(map[string]cty.Value{
"string": cty.StringVal("null"),
}),
Schema: &configschema.Block{
Attributes: map[string]*configschema.Attribute{
"string": {Type: cty.String, Optional: true},
},
},
RequiredReplace: cty.NewPathSet(),
Tainted: false,
ExpectedOutput: ` # test_instance.example will be created
+ resource "test_instance" "example" {
+ string = "null"
}
`,
},
"deletion": {

Loading…
Cancel
Save