diff --git a/cmd/mesh-controller/silent_mid_tier_integration_test.go b/cmd/mesh-controller/silent_mid_tier_integration_test.go index 4d403b24..fc7c8577 100644 --- a/cmd/mesh-controller/silent_mid_tier_integration_test.go +++ b/cmd/mesh-controller/silent_mid_tier_integration_test.go @@ -193,9 +193,13 @@ func TestAPlanPassesATierWhoseMachineNeverReportsAfterTheBoundAndSendsTheNextToT if !strings.Contains(moved, "laptop") || strings.Contains(moved, "anchor") { t.Errorf("1160/AC5: the plan says %q; want laptop named silent and not anchor", moved) } - if b := plan().Modules["b"]; b == nil || !b.Key { - t.Errorf("tier 1's module is not taken from its key: %+v", b) - } + // The move to tier 1 is saved in one step and the look that marks b taken from its key is the next (release_plan.go + // advances the tier, plan_keys.go takeFromKey marks it): read b once that look ran, not in the instant the tier moved, + // which a loaded build node shows before it (group check fcb076c5387f). + eventually(t, "tier 1's module taken from its key", func() bool { + b := plan().Modules["b"] + return b != nil && b.Key + }) // Tier 1's module is taken from its key once that is built, which the walk's look does by itself. heldB.Store(false) askToLook()