Make cross-configuration validation deterministic

This commit is contained in:
2026-09-05 03:37:00 +00:00
parent 0d4d71b9dc
commit 5b62a8d60d
5 changed files with 35 additions and 5 deletions

View File

@@ -351,11 +351,14 @@ func cloneNotariusConfigForTest(cfg *NotariusConfig) *NotariusConfig {
func TestNotariusSpellCatalogReferenceRequiresEffectiveInput(t *testing.T) {
cfg := loadedValidConfig(t)
cfg.Pipeline.Notarius = validNotariusConfig()
cfg.Pipeline.Notarius.References = map[string]string{"spells": "narratio.input.spell_catalog"}
cfg.Pipeline.Notarius.References = map[string]string{
"zeta": "narratio.input.spell_catalog",
"alpha": "narratio.input.spell_catalog",
}
err := Validate(cfg)
if err == nil || !strings.Contains(err.Error(), "requires campaign.inputs.spell_catalog_file or session.inputs.spell_catalog_file") {
t.Fatalf("Validate() error = %v, want missing spell catalog input", err)
if err == nil || !strings.Contains(err.Error(), "pipeline.notarius.references.alpha") || !strings.Contains(err.Error(), "requires campaign.inputs.spell_catalog_file or session.inputs.spell_catalog_file") {
t.Fatalf("Validate() error = %v, want sorted selector and missing spell catalog input", err)
}
cfg.StableInputs.SpellCatalogFile = ResolvedInputFile{Path: "./spells.json", Source: "campaign_config"}