diff --git a/defaultmodules/weather/providers/weathergov.js b/defaultmodules/weather/providers/weathergov.js index 691b81045d..5abd314683 100644 --- a/defaultmodules/weather/providers/weathergov.js +++ b/defaultmodules/weather/providers/weathergov.js @@ -349,7 +349,7 @@ class WeatherGovProvider { days.push(weather); } - return days.slice(1); // Skip first incomplete day + return days; } #generateWeatherObjectsFromHourly (forecasts) { diff --git a/tests/unit/modules/default/weather/providers/weathergov_spec.js b/tests/unit/modules/default/weather/providers/weathergov_spec.js index 81a7edd94f..6326a7fa4b 100644 --- a/tests/unit/modules/default/weather/providers/weathergov_spec.js +++ b/tests/unit/modules/default/weather/providers/weathergov_spec.js @@ -241,6 +241,36 @@ describe("WeatherGovProvider", () => { expect(day).toHaveProperty("weatherType"); expect(day).toHaveProperty("precipitationProbability"); }); + + it("should not skip the first day of forecast data", async () => { + const provider = new WeatherGovProvider({ + lat: 40.71, + lon: -74.0, + type: "forecast" + }); + + const dataPromise = new Promise((resolve) => { + provider.setCallbacks(resolve, vi.fn()); + }); + + server.use( + http.get(WEATHERGOV_FORECAST_URL, () => { + return HttpResponse.json(forecastData); + }) + ); + + await provider.initialize(); + provider.start(); + + const result = await dataPromise; + + // Mock data starts on 2026-02-06 ("This Afternoon"). + // Before the fix, slice(1) dropped today, so result[0] would have been 2026-02-07. + const firstDate = result[0].date; + expect(firstDate.getFullYear()).toBe(2026); + expect(firstDate.getMonth()).toBe(1); // February (0-indexed) + expect(firstDate.getDate()).toBe(6); + }); }); describe("Hourly Parsing", () => {