diff --git a/cmd/mesh-controller/settings_walk_test.go b/cmd/mesh-controller/settings_walk_test.go index 0c7e81f9..72107bfc 100644 --- a/cmd/mesh-controller/settings_walk_test.go +++ b/cmd/mesh-controller/settings_walk_test.go @@ -413,6 +413,18 @@ func TestASettingsWalkSendsTheLayerAloneEveryBuildKept(t *testing.T) { if kept, _ := recordedKept(ctx, w.open, "anchor"); kept["app"] != "" { t.Fatalf("an ordinary send keeps a rolled-out build: %v", kept) } + // And so the ungated build waiting on anchor is no move of the settings send's: nothing for a gate to see. + f, err := readMoveFacts(ctx, inv) + if err != nil { + t.Fatal(err) + } + waiting, _ := machineMoves(ctx, w.open, f, "anchor", false) + if len(waiting) != 1 || waiting[0].Module != "app" { + t.Fatalf("anchor waits for %+v, want app's c2", waiting) + } + if moved, err := withoutKept(keepingBuildsForSettings(ctx, "anchor"), w.open, "anchor", waiting); err != nil || len(moved) != 0 { + t.Fatalf("a settings send to anchor would move %+v (%v)", moved, err) + } } // A machine whose send would move a running module's data stops the walk there, failed and said with the push that