diff --git a/internal/sources/builtins_test.go b/internal/sources/builtins_test.go index 0781157..08a17f3 100644 --- a/internal/sources/builtins_test.go +++ b/internal/sources/builtins_test.go @@ -6,61 +6,29 @@ import ( "gitea.maximumdirect.net/ejr/feedkit/config" fksource "gitea.maximumdirect.net/ejr/feedkit/sources" - "gitea.maximumdirect.net/ejr/weatherfeeder/internal/sources/nws" - "gitea.maximumdirect.net/ejr/weatherfeeder/internal/sources/openmeteo" "gitea.maximumdirect.net/ejr/weatherfeeder/internal/sources/openweather" "gitea.maximumdirect.net/ejr/weatherfeeder/internal/sources/spc" ) -func TestRegisterBuiltinsRegistersNWSHourlyForecastDriver(t *testing.T) { +func TestRegisterBuiltinsRegistersCurrentPollDrivers(t *testing.T) { reg := fksource.NewRegistry() RegisterBuiltins(reg) - in, err := reg.BuildInput(sourceConfigForDriver(nws.DriverForecastHourly)) - if err != nil { - t.Fatalf("BuildInput(nws_forecast_hourly) error = %v", err) + if len(pollDriverRegistrations) == 0 { + t.Fatalf("pollDriverRegistrations is empty") } - if _, ok := in.(fksource.PollSource); !ok { - t.Fatalf("BuildInput(nws_forecast_hourly) type = %T, want PollSource", in) - } -} -func TestRegisterBuiltinsRegistersNWSNarrativeForecastDriver(t *testing.T) { - reg := fksource.NewRegistry() - RegisterBuiltins(reg) - - in, err := reg.BuildInput(sourceConfigForDriver(nws.DriverForecastNarrative)) - if err != nil { - t.Fatalf("BuildInput(nws_forecast_narrative) error = %v", err) - } - if _, ok := in.(fksource.PollSource); !ok { - t.Fatalf("BuildInput(nws_forecast_narrative) type = %T, want PollSource", in) - } -} - -func TestRegisterBuiltinsRegistersNWSForecastDiscussionDriver(t *testing.T) { - reg := fksource.NewRegistry() - RegisterBuiltins(reg) - - in, err := reg.BuildInput(sourceConfigForDriver(nws.DriverForecastDiscussion)) - if err != nil { - t.Fatalf("BuildInput(nws_forecast_discussion) error = %v", err) - } - if _, ok := in.(fksource.PollSource); !ok { - t.Fatalf("BuildInput(nws_forecast_discussion) type = %T, want PollSource", in) - } -} - -func TestRegisterBuiltinsRegistersNWSWeatherStoriesDriver(t *testing.T) { - reg := fksource.NewRegistry() - RegisterBuiltins(reg) - - in, err := reg.BuildInput(sourceConfigForDriver(nws.DriverWeatherStories)) - if err != nil { - t.Fatalf("BuildInput(nws_weatherstories) error = %v", err) - } - if _, ok := in.(fksource.PollSource); !ok { - t.Fatalf("BuildInput(nws_weatherstories) type = %T, want PollSource", in) + for _, tt := range pollDriverRegistrations { + tt := tt + t.Run(tt.driver, func(t *testing.T) { + in, err := reg.BuildInput(sourceConfigForDriver(tt.driver)) + if err != nil { + t.Fatalf("BuildInput(%q) error = %v", tt.driver, err) + } + if _, ok := in.(fksource.PollSource); !ok { + t.Fatalf("BuildInput(%q) type = %T, want PollSource", tt.driver, in) + } + }) } } @@ -77,34 +45,6 @@ func TestRegisterBuiltinsDoesNotRegisterLegacyNWSForecastDriver(t *testing.T) { } } -func TestRegisterBuiltinsRegistersAllCurrentDrivers(t *testing.T) { - reg := fksource.NewRegistry() - RegisterBuiltins(reg) - - drivers := []string{ - nws.DriverObservation, - nws.DriverAlerts, - nws.DriverForecastHourly, - nws.DriverForecastNarrative, - nws.DriverForecastDiscussion, - nws.DriverWeatherStories, - openmeteo.DriverObservation, - openmeteo.DriverForecast, - openweather.DriverObservation, - spc.DriverConvectiveOutlook, - } - - for _, driver := range drivers { - in, err := reg.BuildInput(sourceConfigForDriver(driver)) - if err != nil { - t.Fatalf("BuildInput(%s) error = %v", driver, err) - } - if _, ok := in.(fksource.PollSource); !ok { - t.Fatalf("BuildInput(%s) type = %T, want PollSource", driver, in) - } - } -} - func sourceConfigForDriver(driver string) config.SourceConfig { url := "https://example.invalid" if driver == openweather.DriverObservation {