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