mesh/merge-gate pass: builds build-agent, mesh-controller, route-proxy → ace, g14, novox, shanks; no bus step; every machine composes with the change as it…
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery delivered
mesh/delivery-group group feat/setting-defaults failed: a member failed
A key dropped silently ran a module without what its manifest says, and a key inside a block still failed the whole catalogue. Judge a key by what it is about, and narrow the listing to one machine.
35 lines
1.3 KiB
Go
35 lines
1.3 KiB
Go
package inventory
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
// A manifest a newer controller registered, with a key this one does not know, does not stop the
|
|
// catalogue from loading: it is read, marked, and every other module is read as before (novox/hq ADR 0262).
|
|
func TestTheCatalogueLoadsAroundAManifestWithAnUnknownKey(t *testing.T) {
|
|
inv := fresh(t)
|
|
if err := inv.RegisterModule(t.Context(), manifest("thing", nil, nil), Source{}); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if _, err := inv.store.Pool().Exec(t.Context(),
|
|
`insert into module (name, manifest) values ($1, $2)`, "later",
|
|
`{"module": "later", "version": "2", "state": [{"name": "s", "a-field-from-later": 1}]}`); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
known, err := inv.Catalogue(t.Context())
|
|
if err != nil {
|
|
t.Fatalf("one manifest with an unknown key failed the whole catalogue: %v", err)
|
|
}
|
|
if known["thing"].Module != "thing" || known["thing"].UnknownField() != "" {
|
|
t.Fatalf("the other module: %+v", known["thing"])
|
|
}
|
|
if !strings.Contains(known["later"].UnknownField(), "a-field-from-later") {
|
|
t.Fatalf("the newer manifest is not marked: %q", known["later"].UnknownField())
|
|
}
|
|
entries, err := inv.Catalogued(t.Context())
|
|
if err != nil || len(entries) < 2 {
|
|
t.Fatalf("the listing: %v %d", err, len(entries))
|
|
}
|
|
}
|