Made forecast-period conditionCode optional

This commit is contained in:
2026-05-28 07:46:57 -05:00
parent 6ea27cb2c5
commit 626df6bfc1
9 changed files with 111 additions and 60 deletions

View File

@@ -55,7 +55,7 @@ func TestForecastPayloadUS(t *testing.T) {
Periods: []model.WeatherForecastPeriod{{
StartTime: issuedAt,
EndTime: issuedAt.Add(1 * time.Hour),
ConditionCode: 63,
ConditionCode: wmoCodePtr(63),
TemperatureC: float64Ptr(0),
TemperatureCMin: float64Ptr(-5),
TemperatureCMax: float64Ptr(5),
@@ -91,7 +91,7 @@ func TestForecastPayloadOmitsLegacyDescriptionFields(t *testing.T) {
Periods: []model.WeatherForecastPeriod{{
StartTime: time.Date(2026, 3, 20, 12, 0, 0, 0, time.UTC),
EndTime: time.Date(2026, 3, 20, 13, 0, 0, 0, time.UTC),
ConditionCode: model.WMOUnknown,
ConditionCode: wmoCodePtr(model.WMOUnknown),
TextDescription: "Cloudy",
}},
}
@@ -111,7 +111,7 @@ func TestForecastPayloadTimezoneConversionMetricAndUS(t *testing.T) {
Periods: []model.WeatherForecastPeriod{{
StartTime: issuedAt.Add(1 * time.Hour),
EndTime: issuedAt.Add(2 * time.Hour),
ConditionCode: model.WMOUnknown,
ConditionCode: wmoCodePtr(model.WMOUnknown),
}},
}
@@ -153,7 +153,7 @@ func TestForecastPayloadNoTimezonePreservesUTCAndCopySemantics(t *testing.T) {
Periods: []model.WeatherForecastPeriod{{
StartTime: issuedAt,
EndTime: issuedAt.Add(time.Hour),
ConditionCode: model.WMOUnknown,
ConditionCode: wmoCodePtr(model.WMOUnknown),
}},
}
@@ -438,6 +438,11 @@ func boolPtr(v bool) *bool {
return &v
}
func wmoCodePtr(v model.WMOCode) *model.WMOCode {
out := v
return &out
}
func assertApprox(t *testing.T, got *float64, want, eps float64) {
t.Helper()
if got == nil {