@@ -16,6 +16,7 @@ func Test_Weekly(t *testing.T) {
16
16
spec string
17
17
at time.Time
18
18
expectedNext time.Time
19
+ expectedMin time.Duration
19
20
expectedError string
20
21
expectedCron string
21
22
expectedTz string
@@ -26,6 +27,7 @@ func Test_Weekly(t *testing.T) {
26
27
spec : "CRON_TZ=US/Central 30 9 * * 1-5" ,
27
28
at : time .Date (2022 , 4 , 1 , 14 , 29 , 0 , 0 , time .UTC ),
28
29
expectedNext : time .Date (2022 , 4 , 1 , 14 , 30 , 0 , 0 , time .UTC ),
30
+ expectedMin : 24 * time .Hour ,
29
31
expectedError : "" ,
30
32
expectedCron : "30 9 * * 1-5" ,
31
33
expectedTz : "US/Central" ,
@@ -36,11 +38,34 @@ func Test_Weekly(t *testing.T) {
36
38
spec : "30 9 * * 1-5" ,
37
39
at : time .Date (2022 , 4 , 1 , 9 , 29 , 0 , 0 , time .UTC ),
38
40
expectedNext : time .Date (2022 , 4 , 1 , 9 , 30 , 0 , 0 , time .UTC ),
41
+ expectedMin : 24 * time .Hour ,
39
42
expectedError : "" ,
40
43
expectedCron : "30 9 * * 1-5" ,
41
44
expectedTz : "UTC" ,
42
45
expectedString : "CRON_TZ=UTC 30 9 * * 1-5" ,
43
46
},
47
+ {
48
+ name : "convoluted with timezone" ,
49
+ spec : "CRON_TZ=US/Central */5 12-18 * * 1,3,6" ,
50
+ at : time .Date (2022 , 4 , 1 , 14 , 29 , 0 , 0 , time .UTC ),
51
+ expectedNext : time .Date (2022 , 4 , 2 , 17 , 0 , 0 , 0 , time .UTC ), // Apr 1 was a Friday in 2022
52
+ expectedMin : 5 * time .Minute ,
53
+ expectedError : "" ,
54
+ expectedCron : "*/5 12-18 * * 1,3,6" ,
55
+ expectedTz : "US/Central" ,
56
+ expectedString : "CRON_TZ=US/Central */5 12-18 * * 1,3,6" ,
57
+ },
58
+ {
59
+ name : "another convoluted example" ,
60
+ spec : "CRON_TZ=US/Central 10,20,40-50 * * * *" ,
61
+ at : time .Date (2022 , 4 , 1 , 14 , 29 , 0 , 0 , time .UTC ),
62
+ expectedNext : time .Date (2022 , 4 , 1 , 14 , 40 , 0 , 0 , time .UTC ),
63
+ expectedMin : time .Minute ,
64
+ expectedError : "" ,
65
+ expectedCron : "10,20,40-50 * * * *" ,
66
+ expectedTz : "US/Central" ,
67
+ expectedString : "CRON_TZ=US/Central 10,20,40-50 * * * *" ,
68
+ },
44
69
{
45
70
name : "time.Local will bite you" ,
46
71
spec : "CRON_TZ=Local 30 9 * * 1-5" ,
@@ -104,6 +129,7 @@ func Test_Weekly(t *testing.T) {
104
129
require .Equal (t , testCase .expectedCron , actual .Cron ())
105
130
require .Equal (t , testCase .expectedTz , actual .Timezone ())
106
131
require .Equal (t , testCase .expectedString , actual .String ())
132
+ require .Equal (t , testCase .expectedMin , actual .Min ())
107
133
} else {
108
134
require .EqualError (t , err , testCase .expectedError )
109
135
require .Nil (t , actual )
0 commit comments