The controller follows the subject it decodes
The decoder named the forge's merge subject as the fourth thing followed and the list was three long: every message that fell through to that switch panicked the control plane (2026-09-28). The entry was written and lost between two attempts at the same edit. A test now walks the list; the composed grants and the genesis template carry the subject.
This commit is contained in:
@@ -377,3 +377,17 @@ func TestNatsAReportIsLetGoOnceTheStoreHasBeenGoneTooLong(t *testing.T) {
|
||||
|
||||
// A merge announcement is not what these tests are about; taken and forgotten.
|
||||
func (t *toldAbout) SourceMoved(context.Context, SourceMoved) error { return nil }
|
||||
|
||||
// Every subject the controller follows decodes to a kind, and decoding never reaches past the
|
||||
// list: the day the list was three long and the decoder named a fourth, every message panicked
|
||||
// the control plane (2026-09-28).
|
||||
func TestEverySubjectTheControllerFollowsDecodesToAKind(t *testing.T) {
|
||||
for _, subject := range broker.ControllerFollows {
|
||||
if _, ok := kindOfSubject(subject); !ok {
|
||||
t.Errorf("%s is followed and decodes to nothing", subject)
|
||||
}
|
||||
}
|
||||
if _, ok := kindOfSubject("mesh.mod.nobody.event.nothing"); ok {
|
||||
t.Error("a subject nobody follows decoded to a kind")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user