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:
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user