fixupBody missing MissingItemRange
When blocktoattr.fixupBody returned its content, the value for `MissingItemRange` was omitted, losing the diagnostic Subject.
This commit is contained in:
parent
af68a1e55a
commit
6a495c8d42
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue