core: Fix TestContext2Apply_outputOrphanModule
The adaptation of ModuleState.RemovedOutputs for the new config types was incorrect because it took the absence of any output map as "nothing to do", rather than "everything has been removed" as expected. Now it treats a nil map like an empty map, detecting _all_ of the outputs as having been removed if the output map is nil.
This commit is contained in:
parent
11bd07abb2
commit
aedbbc6207
|
@ -4110,7 +4110,7 @@ func TestContext2Apply_outputOrphanModule(t *testing.T) {
|
||||||
|
|
||||||
actual = strings.TrimSpace(state.String())
|
actual = strings.TrimSpace(state.String())
|
||||||
if actual != "" {
|
if actual != "" {
|
||||||
t.Fatalf("expected no state, got:\n%s", actual)
|
t.Fatalf("wrong result\n\ngot:\n%s\n\nwant: no state at all", actual)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1086,9 +1086,13 @@ func (m *ModuleState) Orphans(c *configs.Module) []addrs.ResourceInstance {
|
||||||
// RemovedOutputs returns a list of outputs that are in the State but aren't
|
// RemovedOutputs returns a list of outputs that are in the State but aren't
|
||||||
// present in the configuration itself.
|
// present in the configuration itself.
|
||||||
func (s *ModuleState) RemovedOutputs(outputs map[string]*configs.Output) []addrs.OutputValue {
|
func (s *ModuleState) RemovedOutputs(outputs map[string]*configs.Output) []addrs.OutputValue {
|
||||||
if len(outputs) == 0 {
|
if outputs == nil {
|
||||||
return nil
|
// If we got no output map at all then we'll just treat our set of
|
||||||
|
// configured outputs as empty, since that suggests that they've all
|
||||||
|
// been removed by removing their containing module.
|
||||||
|
outputs = make(map[string]*configs.Output)
|
||||||
}
|
}
|
||||||
|
|
||||||
s.Lock()
|
s.Lock()
|
||||||
defer s.Unlock()
|
defer s.Unlock()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue