Validate configuration source keys and overrides

This commit is contained in:
2026-08-13 00:15:26 +00:00
parent 5139c1a586
commit 26a681e0b1
7 changed files with 173 additions and 17 deletions

View File

@@ -1066,6 +1066,44 @@ func TestInvalidConfigProducesActionableError(t *testing.T) {
}
}
func TestMissingSourcePoliciesOnlyAllowSupportedOptionalSources(t *testing.T) {
for _, source := range []string{
MissingSourceObservations,
MissingSourceCurrent,
MissingSourceNarrative,
MissingSourceAlerts,
MissingSourceDiscussion,
MissingSourceWeatherStory,
MissingSourceSPCConvectiveOutlooks,
} {
t.Run("supported_"+source, func(t *testing.T) {
cfg := Defaults()
cfg.MissingSource.Sources = map[string]MissingSourcePolicy{source: MissingSourceNone}
if err := Validate(cfg); err != nil {
t.Fatalf("Validate() error = %v", err)
}
loaded, err := LoadFile(writeConfig(t, "missing_source:\n sources:\n "+source+": none\n"))
if err != nil {
t.Fatalf("LoadFile() error = %v", err)
}
if loaded.MissingSource.Sources[source] != MissingSourceNone {
t.Fatalf("loaded source policy = %q, want none", loaded.MissingSource.Sources[source])
}
})
}
for _, source := range []string{"alert", "unknown", "hourly", ""} {
t.Run("unsupported_"+source, func(t *testing.T) {
cfg := Defaults()
cfg.MissingSource.Sources = map[string]MissingSourcePolicy{source: MissingSourceWarn}
err := Validate(cfg)
if err == nil || !strings.Contains(err.Error(), "missing_source.sources") {
t.Fatalf("Validate() error = %v, want unsupported source error", err)
}
})
}
}
func TestLoadAppliesOverrides(t *testing.T) {
cfg, err := Load(LoadOptions{Units: "metric", Timezone: "+09:30"})
if err != nil {