diff --git a/internal/selfcompose/selfcompose_test.go b/internal/selfcompose/selfcompose_test.go index 06d1ce8..afe1490 100644 --- a/internal/selfcompose/selfcompose_test.go +++ b/internal/selfcompose/selfcompose_test.go @@ -315,9 +315,9 @@ func TestTheNodeComposesItsWantsFromTheBus(t *testing.T) { } // Issue 1126, the applying path (review of the seed): one module's own refusal holds that module alone. On novox, // de-spiegel's unset route names (its manifest at the indexer's commit e25e1beb, captured) refused the whole node and - // marked all its modules not composed. Now lemurs is handed; de-spiegel is held, and proxy with it, which receives its - // routes: what was handed of de-spiegel stays handed, so the node keeps running it, and the agent is told those two - // alone, de-spiegel in its config form's words. + // marked all its modules not composed. Now lemurs and proxy are handed; de-spiegel is held alone (issue 1960: a hold + // never spreads to proxy, which composes without its routes, nor to its smtp provider): what was handed of de-spiegel + // stays handed, so the node keeps running it, and the agent is told it alone, in its config form's words. spiegel, err := os.ReadFile("testdata/de-spiegel-e25e1beb.module.json") if err != nil { t.Fatal(err) @@ -353,15 +353,17 @@ func TestTheNodeComposesItsWantsFromTheBus(t *testing.T) { if u, ok := handed3[lemursKey3]; !ok || u.Deleted { t.Errorf("lemurs, which composes, is not handed beside de-spiegel's refusal: %v (told %q)", handed3, *told) } - if u, ok := handed3[proxyKey]; ok { - t.Errorf("proxy is handed without held de-spiegel's routes: %+v", u) + // Issue 1960: a hold never spreads. proxy is handed, composed without held de-spiegel's routes, which do not compose. + if u, ok := handed3[proxyKey]; !ok || u.Deleted { + t.Errorf("proxy is not handed beside held de-spiegel: %v (told %q)", handed3, *told) } if u, ok := handed3[spiegelKey]; ok { t.Errorf("held de-spiegel is handed %+v, want what was handed of it kept", u) } if len(*told) != 1 || !strings.HasPrefix((*told)[0], "held de-spiegel: ") || !strings.Contains((*told)[0], "${config:praktijk-name}") || - !strings.Contains((*told)[0], "held proxy: ") || strings.Contains((*told)[0], "held lemurs") { - t.Errorf("the agent was told %q, want de-spiegel held in its config form's words, and proxy", *told) + !strings.Contains((*told)[0], "without what it contributes to route") || strings.Contains((*told)[0], "held proxy") || + strings.Contains((*told)[0], "held lemurs") { + t.Errorf("the agent was told %q, want de-spiegel held alone, in its config form's words, without its routes", *told) } // A read the bus did not answer, timed out or not, is tried again later; the run's own end and a refusal are not.