From cf26e956915cbb438e6e3acc4eee4a9972103fd7 Mon Sep 17 00:00:00 2001 From: jochen Date: Sun, 25 Oct 2026 15:15:40 +0100 Subject: [PATCH] A view answer rewritten with the same option changes nothing; pin a unit test's clock against the integration tests' (issue 1906) --- .../cmd/mesh-delivery-teller/integration_test.go | 5 +++-- .../cmd/mesh-delivery-teller/viewanswers_test.go | 3 +++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/integration_test.go b/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/integration_test.go index 44bfc98..bb24aa4 100644 --- a/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/integration_test.go +++ b/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/integration_test.go @@ -524,8 +524,9 @@ func TestTellerFillsAnAskFromTheViewsAnswerOnce(t *testing.T) { // 1297/B10 AC if a, err := delivery.DecodeAnswer(e.Value()); err != nil || a.Option != "release" || answeredAsking(e.Value()) != ask.ID { t.Fatalf("answer %+v err %v", a, err) } - // The view's answer written again changes nothing under the ask. - if _, err := viewKV.Put(b.ctx, key+".view", viewAnswer(t, "keep", "")); err != nil { + // The view's answer written again with the same option changes nothing under the ask (another option, later, is the + // operator changing their mind: TestTellerTakesAChangedHoldAnswerFromTheView, issue 1906 note 23). + if _, err := viewKV.Put(b.ctx, key+".view", viewAnswer(t, "release", "")); err != nil { t.Fatal(err) } time.Sleep(time.Second) diff --git a/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/viewanswers_test.go b/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/viewanswers_test.go index 6514383..d53985e 100644 --- a/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/viewanswers_test.go +++ b/modules/mesh-delivery-teller/cmd/mesh-delivery-teller/viewanswers_test.go @@ -119,8 +119,11 @@ func TestAViewAnswerOfAnOptionTheAskDoesNotOfferFillsNothing(t *testing.T) { // } } +// A view answer written before the answer that stands never replaces it (1906/N23: only a later one may, for a hold). The +// view's time is fixed here, not the package's clock, which the integration tests set to the wall clock. func TestAViewAnswerNeverReplacesTheAnswerOfTheSameAsking(t *testing.T) { // 1297/B10 b := newBed(t) + b.t.Now = func() time.Time { return time.Date(2026, 10, 19, 12, 0, 0, 0, time.UTC) } assigner, view := withView(b) key, value, ask := holdAsk(t) assigner[key] = value