fixupBody missing MissingItemRange

When blocktoattr.fixupBody returned its content, the value for
`MissingItemRange` was omitted, losing the diagnostic Subject.
This commit is contained in:
James Bardin 2021-06-18 09:05:56 -04:00
parent af68a1e55a
commit 6a495c8d42
2 changed files with 50 additions and 0 deletions

View File

@ -137,6 +137,8 @@ func (b *fixupBody) fixupContent(content *hcl.BodyContent) *hcl.BodyContent {
NameRange: blocks[0].TypeRange, NameRange: blocks[0].TypeRange,
} }
} }
ret.MissingItemRange = b.MissingItemRange()
return &ret return &ret
} }

View File

@ -360,6 +360,46 @@ container {
}), }),
}), }),
}, },
"missing nested block items": {
src: `
container {
foo {
bar = "one"
}
}
`,
schema: &configschema.Block{
BlockTypes: map[string]*configschema.NestedBlock{
"container": {
Nesting: configschema.NestingList,
MinItems: 2,
Block: configschema.Block{
Attributes: map[string]*configschema.Attribute{
"foo": {
Type: cty.List(cty.Object(map[string]cty.Type{
"bar": cty.String,
})),
Optional: true,
},
},
},
},
},
},
want: cty.ObjectVal(map[string]cty.Value{
"container": cty.ListVal([]cty.Value{
cty.ObjectVal(map[string]cty.Value{
"foo": cty.ListVal([]cty.Value{
cty.ObjectVal(map[string]cty.Value{
"bar": cty.StringVal("baz"),
}),
}),
}),
}),
}),
wantErrs: true,
},
} }
ctx := &hcl.EvalContext{ ctx := &hcl.EvalContext{
@ -398,6 +438,14 @@ container {
if !diags.HasErrors() { if !diags.HasErrors() {
t.Errorf("succeeded, but want error\ngot: %#v", got) t.Errorf("succeeded, but want error\ngot: %#v", got)
} }
// check that our wrapped body returns the correct context by
// verifying the Subject is valid.
for _, d := range diags {
if d.Subject.Filename == "" {
t.Errorf("empty diagnostic subject: %#v", d.Subject)
}
}
return return
} }