diff --git a/modules/mesh-delivery-gate/cmd/mesh-delivery-gate/ready_test.go b/modules/mesh-delivery-gate/cmd/mesh-delivery-gate/ready_test.go index 03ef6b9e..4f85d309 100644 --- a/modules/mesh-delivery-gate/cmd/mesh-delivery-gate/ready_test.go +++ b/modules/mesh-delivery-gate/cmd/mesh-delivery-gate/ready_test.go @@ -388,9 +388,11 @@ func TestAGroupMergesEveryMemberInOnePassOnlyOnceComposedAndApproved(t *testing. r.settleAll() r.later(askCheckBound + time.Minute) r.h.PullUpdated(pr("novox/mesh-controller", 1, ctlHead2, "feat/x", "internal/a.go")) - // Ready in its handler, with no run yet, while the check of the group's new heads together runs. - r.h.Checked(judgedAt("novox/mesh-controller", 1, ctlHead2, "pass", "t1t1t1t1t1t1")) - checkerSays(r, "feat/x", "running", "", headOf("novox/mesh-controller", 1, ctlHead2), headOf("novox/mesh-catalog", 2, catHead)) + // Made ready by a handler, before the look gives it a run: no verdict and no status at the new heads, so only the rule + // that a member with no run counts as ready now keeps the older sibling's time from asking it as unanswered. + r.h.mu.Lock() + r.h.ungate(r.h.deliveries[IDOf("novox/mesh-controller", ctlHead2)], r.h.Now()) + r.h.mu.Unlock() r.settleAll() if d := r.delivery(IDOf("novox/mesh-catalog", catHead)); r.op.count() != 0 || d.Ready == nil || !strings.Contains(d.Ready.Waits, waitsCheckBeforeAsking) {