Item 2 (join 11): the builder's operator-ask tests check the ask's expiry on the asks' own clock

The asks were made at a fixed time while the channel client checked their expiry against the real clock, so from
2026-11-12 every ask "expires before it is asked". The client now takes the same fixed clock.

Builds: design 47 G §568

Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
This commit is contained in:
2026-11-12 13:02:03 +01:00
parent 24d0bae793
commit 778bcd0eee
@@ -45,6 +45,10 @@ func TestTheOperatorIsAskedAndAnswers(t *testing.T) {
}
}
// askedAt is the clock of the asks and of the client that checks them, one fixed time, so an ask's expiry never falls
// behind the real clock.
func askedAt() time.Time { return time.Date(2026, 11, 11, 12, 0, 0, 0, time.UTC) }
func theOperatorAnswers(t *testing.T, option string) {
r := newRig(t, goBundle)
r.consider(t, "modules/m")
@@ -52,8 +56,8 @@ func theOperatorAnswers(t *testing.T, option string) {
Error: "transport fault: connection, node-build-go ace, dial tcp: connection refused"})
var published []oc.Ask
acted := &actedStore{}
asker := &OperatorAsk{Builder: r.b, Acted: acted, Ctx: context.Background(), Now: func() time.Time { return time.Date(2026, 11, 11, 12, 0, 0, 0, time.UTC) },
Client: &occ.Client{Module: "mesh-delivery-builder", State: &askedState{},
asker := &OperatorAsk{Builder: r.b, Acted: acted, Ctx: context.Background(), Now: askedAt,
Client: &occ.Client{Module: "mesh-delivery-builder", State: &askedState{}, Now: askedAt,
Publish: func(subject string, body any, id string) error {
if subject != oc.AcceptSubjectAsk("mesh-delivery-builder") {
t.Errorf("published on %s", subject)
@@ -131,8 +135,8 @@ func TestTheOperatorsAnswerIsHeardThroughTheSdkAskerAndActedOnOnce(t *testing.T)
},
AskSubject: oc.AcceptSubjectAsk, DecidedSubject: oc.SubjectDecided}
o := &OperatorAsk{Builder: r.b, Acted: &actedStore{}, Ctx: context.Background(), Asker: asker,
Now: func() time.Time { return time.Date(2026, 11, 11, 12, 0, 0, 0, time.UTC) },
Client: &occ.Client{Module: "mesh-delivery-builder", State: state, Publish: func(_ string, body any, id string) error { return asker.Ask(id, body) }}}
Now: askedAt,
Client: &occ.Client{Module: "mesh-delivery-builder", State: state, Now: askedAt, Publish: func(_ string, body any, id string) error { return asker.Ask(id, body) }}}
if err := o.Listen(); err != nil || subscribed != oc.SubjectDecided("mesh-delivery-builder") {
t.Fatalf("Listen = %v, subscribed to %q", err, subscribed)
}