diff --git a/cmd/mesh-controller/composed_served_integration_test.go b/cmd/mesh-controller/composed_served_integration_test.go index c33dcd60..56a5abe4 100644 --- a/cmd/mesh-controller/composed_served_integration_test.go +++ b/cmd/mesh-controller/composed_served_integration_test.go @@ -240,10 +240,16 @@ func aServedMesh(t *testing.T) *servedMesh { } handingOver.Store(false) }) - // Served once both nodes have their own composition: the start's pass ran. - for _, node := range []string{"anchor", "laptop"} { - own, _ := sdkdelivery.ComposedNodeKey(node) - m.waitFor(t, done, node, own, 0) + // Served once both nodes have their own composition and their module's: the start's pass wrote them all. A node's + // compositions are written in key order, so anchor's own comes before its store's (issue 1945: a test that reads the + // revisions at once must not catch the pass midway). + for _, k := range []struct{ node, module, fp string }{{"anchor", "", ""}, {"laptop", "", ""}, {"anchor", "store", fpOf('a')}, + {"laptop", "board", fpOf('b')}} { + key, _ := sdkdelivery.ComposedNodeKey(k.node) + if k.module != "" { + key, _ = sdkdelivery.ComposedKey(k.node, k.module, k.fp) + } + m.waitFor(t, done, k.node, key, 0) } return m }