From fbdb5a3f0ffa566ccf0946f2df7c9822741cc811 Mon Sep 17 00:00:00 2001 From: TwiN Date: Sat, 7 May 2022 16:46:51 -0400 Subject: [PATCH] test(maintenance): Add tests for edge cases --- config/maintenance/maintenance_test.go | 35 ++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/config/maintenance/maintenance_test.go b/config/maintenance/maintenance_test.go index 747b0010..7f97734e 100644 --- a/config/maintenance/maintenance_test.go +++ b/config/maintenance/maintenance_test.go @@ -98,6 +98,15 @@ func TestConfig_ValidateAndSetDefaults(t *testing.T) { }, expectedError: nil, }, + { + name: "every-day-explicitly-at-2300", + cfg: &Config{ + Start: "23:00", + Duration: time.Hour, + Every: []string{"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"}, + }, + expectedError: nil, + }, { name: "every-monday-at-0000", cfg: &Config{ @@ -168,6 +177,24 @@ func TestConfig_IsUnderMaintenance(t *testing.T) { }, expected: true, }, + { + name: "under-maintenance-starting-now-for-8h-explicit-days", + cfg: &Config{ + Start: fmt.Sprintf("%02d:00", now.Hour()), + Duration: 8 * time.Hour, + Every: []string{"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"}, + }, + expected: true, + }, + { + name: "under-maintenance-starting-now-for-23h-explicit-days", + cfg: &Config{ + Start: fmt.Sprintf("%02d:00", now.Hour()), + Duration: 23 * time.Hour, + Every: []string{"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"}, + }, + expected: true, + }, { name: "under-maintenance-starting-4h-ago-for-8h", cfg: &Config{ @@ -176,6 +203,14 @@ func TestConfig_IsUnderMaintenance(t *testing.T) { }, expected: true, }, + { + name: "under-maintenance-starting-22h-ago-for-23h", + cfg: &Config{ + Start: fmt.Sprintf("%02d:00", normalizeHour(now.Hour()-22)), + Duration: 23 * time.Hour, + }, + expected: true, + }, { name: "under-maintenance-starting-4h-ago-for-3h", cfg: &Config{