make the unknown attribute renderer consider the force replacement metadata (#33065)

This commit is contained in:
Liam Cervante 2023-04-24 11:02:32 +02:00 committed by GitHub
parent 14123e277c
commit b54668f44c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 2 deletions

View File

@ -408,6 +408,25 @@ jsonencode(
},
expected: "0 -> (known after apply)",
},
"computed_create_forces_replacement": {
diff: computed.Diff{
Renderer: Unknown(computed.Diff{}),
Action: plans.Create,
Replace: true,
},
expected: "(known after apply) # forces replacement",
},
"computed_update_forces_replacement": {
diff: computed.Diff{
Renderer: Unknown(computed.Diff{
Renderer: Primitive(0.0, nil, cty.Number),
Action: plans.Delete,
}),
Action: plans.Update,
Replace: true,
},
expected: "0 -> (known after apply) # forces replacement",
},
"object_created": {
diff: computed.Diff{
Renderer: Object(map[string]computed.Diff{}),

View File

@ -24,10 +24,10 @@ type unknownRenderer struct {
func (renderer unknownRenderer) RenderHuman(diff computed.Diff, indent int, opts computed.RenderHumanOpts) string {
if diff.Action == plans.Create {
return "(known after apply)"
return fmt.Sprintf("(known after apply)%s", forcesReplacement(diff.Replace, opts))
}
// Never render null suffix for children of unknown changes.
opts.OverrideNullSuffix = true
return fmt.Sprintf("%s -> (known after apply)", renderer.before.RenderHuman(indent, opts))
return fmt.Sprintf("%s -> (known after apply)%s", renderer.before.RenderHuman(indent, opts), forcesReplacement(diff.Replace, opts))
}