Skip to content

Commit

Permalink
Merge pull request #31236 from hashicorp/alisdair/json-plan-fix-tuple…
Browse files Browse the repository at this point in the history
…-set-unknown

json-output: Fix unknowns for tuples and sets
  • Loading branch information
alisdair committed Jun 17, 2022
2 parents b0b69d3 + 9497b2c commit 7fcf973
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 2 deletions.
5 changes: 3 additions & 2 deletions internal/command/jsonplan/plan.go
Expand Up @@ -566,8 +566,9 @@ func omitUnknowns(val cty.Value) cty.Value {
newVal := omitUnknowns(v)
if newVal != cty.NilVal {
vals = append(vals, newVal)
} else if newVal == cty.NilVal && ty.IsListType() {
// list length may be significant, so we will turn unknowns into nulls
} else if newVal == cty.NilVal {
// element order is how we correlate unknownness, so we must
// replace unknowns with nulls
vals = append(vals, cty.NullVal(v.Type()))
}
}
Expand Down
13 changes: 13 additions & 0 deletions internal/command/jsonplan/plan_test.go
Expand Up @@ -65,6 +65,18 @@ func TestOmitUnknowns(t *testing.T) {
"hello": cty.True,
}),
},
{
cty.TupleVal([]cty.Value{
cty.StringVal("alpha"),
cty.UnknownVal(cty.String),
cty.StringVal("charlie"),
}),
cty.TupleVal([]cty.Value{
cty.StringVal("alpha"),
cty.NullVal(cty.String),
cty.StringVal("charlie"),
}),
},
{
cty.SetVal([]cty.Value{
cty.StringVal("dev"),
Expand All @@ -76,6 +88,7 @@ func TestOmitUnknowns(t *testing.T) {
cty.StringVal("dev"),
cty.StringVal("foo"),
cty.StringVal("stg"),
cty.NullVal(cty.String),
}),
},
{
Expand Down

0 comments on commit 7fcf973

Please sign in to comment.