From 75cf83a6564358e395e70a7dc1b73fdebcc2c83f Mon Sep 17 00:00:00 2001 From: jochen Date: Thu, 5 Nov 2026 14:40:30 +0100 Subject: [PATCH] The seat-list case waits for the reader's change instead of racing it; the node build's generated-package fixture carries its domain (issue 1966) --- modules/claude-code/cmd/claude-code/insteadof_test.go | 8 ++++++++ .../cmd/mesh-build-node/generated_package_test.go | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/modules/claude-code/cmd/claude-code/insteadof_test.go b/modules/claude-code/cmd/claude-code/insteadof_test.go index c68ccfdec..0162459ff 100644 --- a/modules/claude-code/cmd/claude-code/insteadof_test.go +++ b/modules/claude-code/cmd/claude-code/insteadof_test.go @@ -116,6 +116,14 @@ func TestTheMeshsToolsAreReadFromTheBus(t *testing.T) { } startSeatList(listBus{"mesh-module-assigner": someSeats()[0], "node-service-manager": someSeats()[1]}) defer func() { seatListMu.Lock(); seatList = nil; seatListMu.Unlock() }() + // The reader reads on its own goroutine: wait for the change it tells (no sleeping). + for !seatList.Status().Heard { + select { + case <-meshChanged: + case <-time.After(10 * time.Second): + t.Fatalf("the seat list was not read: %+v", seatList.Status()) + } + } got, err := ReadMeshToolsFrom(aMesh(t), definedSeats(), resolving) var addrs []string for _, r := range got.Replacements { diff --git a/modules/mesh-build-node/cmd/mesh-build-node/generated_package_test.go b/modules/mesh-build-node/cmd/mesh-build-node/generated_package_test.go index 1a3a3152c..3c173d129 100644 --- a/modules/mesh-build-node/cmd/mesh-build-node/generated_package_test.go +++ b/modules/mesh-build-node/cmd/mesh-build-node/generated_package_test.go @@ -13,7 +13,7 @@ import ( // installed from that lock (npm ci) and packed (npm pack) with no build script run, as any package artifact is. func TestAGeneratedSeatPackageIsInstalledFromItsLockAndPackedWithoutABuild(t *testing.T) { m, f, work := newMachine(t) - seat := `{"format":1,"seat":"one-store","scope":"mesh","grain":"whole","decision":"ADR 1","verbs":[{"name":"query","input":{"type":"object"},"answer":{"type":"object"}}]}` + seat := `{"format":1,"seat":"one-store","scope":"mesh","grain":"whole","domain":"Module","decision":"ADR 1","verbs":[{"name":"query","input":{"type":"object"},"answer":{"type":"object"}}]}` src := t.TempDir() write(t, filepath.Join(src, "seats", "one-store", "seat.json"), seat, 0o644) g, err := seatgen.Load(src, "example.org/c/go", "@example/c")