Add the forge kind open: every open pull request into trunk, so the indexer can drop the rest (issue 1279, ADR 0443)
mesh/repo-check head 4580d80a32d9 merged into trunk 2db8ef5079f5 beside mesh-controller#400@a0c971ce — pass: its merge-check.sh passed, each part in its to…
mesh/merge-gate head 4580d80a32d9 merged into trunk 2db8ef5079f5 — pass: group fix/1279-consumers-from-now composed: every machine composes with the change…
mesh/delivery delivered
mesh/delivery-group group fix/1279-consumers-from-now delivered: every member is delivered

This commit is contained in:
2026-10-19 21:50:03 +02:00
parent 9ebfb87b5d
commit 4580d80a32
2 changed files with 84 additions and 6 deletions
+36
View File
@@ -65,6 +65,41 @@ func TestSourceKeys(t *testing.T) { // 1200/AC1
}
}
func TestForgeOpenKind(t *testing.T) { // 1279/AC5
ev := OpenEvent()
if ev != "forge.open" {
t.Fatalf("open event = %q", ev)
}
repo, kind, err := ParseForgeEvent(ev)
if err != nil || repo != "" || kind != ForgeOpen {
t.Fatalf("parse open event = %q %q %v", repo, kind, err)
}
// An empty list is a message too: nothing is open.
data, err := EncodeForge(Forge{Kind: ForgeOpen, Open: []OpenPull{}})
if err != nil {
t.Fatalf("empty open: %v", err)
}
if f, err := DecodeForge(data); err != nil || f.Kind != ForgeOpen || len(f.Open) != 0 {
t.Errorf("empty open round trip: %+v %v", f, err)
}
for name, f := range map[string]Forge{
"a repository": {Kind: ForgeOpen, Repository: "a/b", Open: []OpenPull{{Repository: "a/b", Number: 1}}},
"a bad entry": {Kind: ForgeOpen, Open: []OpenPull{{Repository: "a", Number: 1}}},
"a zero number": {Kind: ForgeOpen, Open: []OpenPull{{Repository: "a/b"}}},
"a head": {Kind: ForgeOpen, Head: "x", Open: []OpenPull{{Repository: "a/b", Number: 1}}},
} {
if _, err := EncodeForge(f); err == nil {
t.Errorf("open with %s accepted", name)
}
}
if _, err := EncodeForge(Forge{Kind: ForgePull, Repository: "a/b", Number: 1, Head: "h", Action: "updated", Open: []OpenPull{{Repository: "a/b", Number: 1}}}); err == nil {
t.Error("a pull message naming open pull requests accepted")
}
if _, err := ForgeEvent("a/b", ForgeOpen); err == nil {
t.Error("an open event for a repository accepted")
}
}
func TestHeadsHash(t *testing.T) { // 1200/AC2
a := Head{Repository: "novox/mesh-sdk", Number: 36, Head: "aaaa"}
b := Head{Repository: "novox/mesh-control", Number: 7, Head: "bbbb"}
@@ -113,6 +148,7 @@ func sampleForges() []Forge {
{Kind: ForgeMerged, Repository: "novox/mesh-sdk", Number: 36, Head: "aaaa", Merge: "cccc",
Trees: map[string]string{"modules/a": "t1"}, Root: "t0"},
{Kind: ForgeRefused, Repository: "novox/mesh-sdk", Act: "novox/mesh-sdk.36.aaaa.view", Words: "403 forbidden"},
{Kind: ForgeOpen, Open: []OpenPull{{Repository: "novox/mesh-sdk", Number: 36}, {Repository: "novox/mesh-control", Number: 7}}},
}
}