fix: Parse 24h time format from schedule cron in CLI (#2586)

* fix: parse 24h time format from schedule cron in cli

* add unit test
This commit is contained in:
Abhineet Jain
2022-06-22 13:45:00 -04:00
committed by GitHub
parent b7eeb436ad
commit cfbda57990
2 changed files with 15 additions and 1 deletions

View File

@ -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)

View File

@ -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)