From 191dc1b2763ee2dfb57ade5e333cd8e5cb0ec290 Mon Sep 17 00:00:00 2001 From: Abhineet Jain Date: Wed, 22 Jun 2022 17:02:09 +0000 Subject: [PATCH 1/2] fix: parse 24h time format from schedule cron in cli --- coderd/autobuild/schedule/schedule.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coderd/autobuild/schedule/schedule.go b/coderd/autobuild/schedule/schedule.go index 076c96f062cba..43afcf2223a28 100644 --- a/coderd/autobuild/schedule/schedule.go +++ b/coderd/autobuild/schedule/schedule.go @@ -144,7 +144,7 @@ func (s Schedule) Time() string { minute := strings.Fields(s.cronStr)[0] hour := strings.Fields(s.cronStr)[1] maybeTime := fmt.Sprintf("%s:%s", hour, minute) - t, err := time.ParseInLocation("3:4", maybeTime, s.sched.Location) + t, err := time.ParseInLocation("15:4", maybeTime, s.sched.Location) if err != nil { // return the original cronspec for minute and hour, who knows what's in there! return fmt.Sprintf("cron(%s %s)", minute, hour) From f5138fdf656690f771a8642887ff8470cf4a29c5 Mon Sep 17 00:00:00 2001 From: Abhineet Jain Date: Wed, 22 Jun 2022 17:21:28 +0000 Subject: [PATCH 2/2] add unit test --- coderd/autobuild/schedule/schedule_test.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/coderd/autobuild/schedule/schedule_test.go b/coderd/autobuild/schedule/schedule_test.go index be30d19972bb9..ccba3e4f37773 100644 --- a/coderd/autobuild/schedule/schedule_test.go +++ b/coderd/autobuild/schedule/schedule_test.go @@ -50,6 +50,19 @@ func Test_Weekly(t *testing.T) { expectedString: "CRON_TZ=UTC 30 9 * * 1-5", expectedTime: "9:30AM", }, + { + name: "24h format", + spec: "30 13 * * 1-5", + at: time.Date(2022, 4, 1, 13, 29, 0, 0, time.UTC), + expectedNext: time.Date(2022, 4, 1, 13, 30, 0, 0, time.UTC), + expectedMin: 24 * time.Hour, + expectedDaysOfWeek: "Mon-Fri", + expectedError: "", + expectedCron: "30 13 * * 1-5", + expectedLocation: time.UTC, + expectedString: "CRON_TZ=UTC 30 13 * * 1-5", + expectedTime: "1:30PM", + }, { name: "convoluted with timezone", spec: "CRON_TZ=US/Central */5 12-18 * * 1,3,6", @@ -141,6 +154,7 @@ func Test_Weekly(t *testing.T) { require.Equal(t, testCase.expectedString, actual.String()) require.Equal(t, testCase.expectedMin, actual.Min()) require.Equal(t, testCase.expectedDaysOfWeek, actual.DaysOfWeek()) + require.Equal(t, testCase.expectedTime, actual.Time()) } else { require.EqualError(t, err, testCase.expectedError) require.Nil(t, actual)