diff --git a/modules/nats/cmd/nats-tools/manifest_test.go b/modules/nats/cmd/nats-tools/manifest_test.go index 08067236d..8a3245d21 100644 --- a/modules/nats/cmd/nats-tools/manifest_test.go +++ b/modules/nats/cmd/nats-tools/manifest_test.go @@ -3,6 +3,7 @@ package main import ( "encoding/json" "fmt" + "git.novox.be/novox/mesh-sdk/go/catalogue" "os" "slices" "strings" @@ -220,6 +221,14 @@ func TestTheBussManifestMountsItsProgramsIntoTheUpstreamImage(t *testing.T) { health["kind"] != "tool" || health["tool"] != "nats_keeper_health" { t.Errorf("the keeper is %v: a process of the tools bundle, run as keep, keeping asked and requests, judged by nats_keeper_health", keeper) } + // Its bus declares keeps, the one key more ADR 0626 §1 allows it, read through the SDK as the grant composition reads it. + var whole catalogue.Manifest + if err := json.Unmarshal(raw, &whole); err != nil { + t.Fatal(err) + } + if b := whole.ProcessBuses()["keeper"]; !b.Keeps { + t.Errorf("the keeper's bus declares no keeps, so it would be composed no bus state to keep (ADR 0626 §1): %+v", b) + } if h, _ := server["health"].(map[string]any); h["kind"] != "tcp" || h["endpoint"] != "bus" { t.Errorf("the server's health is %v: tcp on bus, the check the keeper's tool check stands beside", server["health"]) } diff --git a/modules/nats/module.json b/modules/nats/module.json index b704efbe9..5cc9edeab 100644 --- a/modules/nats/module.json +++ b/modules/nats/module.json @@ -247,6 +247,7 @@ "requests" ], "asks": true, + "keeps": true, "invokes": [ "mesh-delivery-indexer.indexer_bus_state", "seat:mesh-hand-acts.hand-act"