fix(maintenance): timezone handling offset issue (#981)

* fix: uses time.Date to construct time at midnight in Timezone instead of Truncate

* test: check for Perth validity using adjusted timezone handling

* chore: remove newlines around day adjustment block

* chore: remove separate define of dayWhereMaintenancePeriodWouldStart
This commit is contained in:
Alex Maras
2025-01-29 11:15:35 +08:00
committed by GitHub
parent dd839be918
commit 975ac3592e
2 changed files with 24 additions and 5 deletions

View File

@ -264,6 +264,15 @@ func TestConfig_IsUnderMaintenance(t *testing.T) {
},
expected: true,
},
{
name: "under-maintenance-perth-timezone-starting-now-for-2h",
cfg: &Config{
Start: fmt.Sprintf("%02d:00", inTimezone(now, "Australia/Perth", t).Hour()),
Duration: 2 * time.Hour,
Timezone: "Australia/Perth",
},
expected: true,
},
{
name: "under-maintenance-utc-timezone-starting-now-for-2h",
cfg: &Config{
@ -340,3 +349,12 @@ func normalizeHour(hour int) int {
}
return hour
}
func inTimezone(passedTime time.Time, timezone string, t *testing.T) time.Time {
timezoneLocation, err := time.LoadLocation(timezone)
if err != nil {
t.Fatalf("timezone %s did not load", timezone)
}
return passedTime.In(timezoneLocation)
}