Merge pull request #28979 from hashicorp/jbardin/fixup-body-context

blocktoattr fixup dropping MissingItemRange
This commit is contained in:
James Bardin 2021-06-18 09:58:52 -04:00 committed by GitHub
commit b7180d07f8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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,
}
}
ret.MissingItemRange = b.MissingItemRange()
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{
@ -398,6 +438,14 @@ container {
if !diags.HasErrors() {
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
}