Validate configuration source keys and overrides
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user