forked from kelektiv/node-cron
-
Notifications
You must be signed in to change notification settings - Fork 0
/
test-crontime.js
152 lines (150 loc) · 5.39 KB
/
test-crontime.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
var testCase = require('nodeunit').testCase,
cron = require('../lib/cron');
module.exports = testCase({
'test stars (* * * * * *)': function(assert) {
assert.expect(1);
assert.doesNotThrow(function() {
new cron.CronTime('* * * * * *');
});
assert.done();
},
'test digit (0 * * * * *)': function(assert) {
assert.expect(1);
assert.doesNotThrow(function() {
new cron.CronTime('0 * * * * *');
});
assert.done();
},
'test multi digits (08 * * * * *)': function(assert) {
assert.expect(1);
assert.doesNotThrow(function() {
new cron.CronTime('08 * * * * *');
});
assert.done();
},
'test all digits (08 8 8 8 8 5)': function(assert) {
assert.expect(1);
assert.doesNotThrow(function() {
new cron.CronTime('08 * * * * *');
});
assert.done();
},
'test too many digits (08 8 8 8 8 5)': function(assert) {
assert.expect(1);
assert.doesNotThrow(function() {
new cron.CronTime('08 * * * * *');
});
assert.done();
},
'test no second digit doesnt throw, i.e. standard cron format (8 8 8 8 5)': function(assert) {
assert.expect(1);
assert.doesNotThrow(function() {
new cron.CronTime('* * * * *');
});
assert.done();
},
'test no second digit defaults to 0, i.e. standard cron format (8 8 8 8 5)': function(assert) {
assert.expect(1);
var now = new Date();
var standard = new cron.CronTime('8 8 8 8 5');
var extended = new cron.CronTime('0 8 8 8 8 5');
assert.ok(standard._getNextDateFrom(now).getTime() === extended._getNextDateFrom(now).getTime());
assert.done();
},
'test hyphen (0-10 * * * * *)': function(assert) {
assert.expect(1);
assert.doesNotThrow(function() {
new cron.CronTime('0-10 * * * * *');
});
assert.done();
},
'test multi hyphens (0-10 0-10 * * * *)': function(assert) {
assert.expect(1);
assert.doesNotThrow(function() {
new cron.CronTime('0-10 0-10 * * * *');
});
assert.done();
},
'test all hyphens (0-10 0-10 0-10 0-10 0-10 0-1)': function(assert) {
assert.expect(1);
assert.doesNotThrow(function() {
new cron.CronTime('0-10 0-10 0-10 0-10 0-10 0-1');
});
assert.done();
},
'test comma (0,10 * * * * *)': function(assert) {
assert.expect(1);
assert.doesNotThrow(function() {
new cron.CronTime('0,10 * * * * *');
});
assert.done();
},
'test multi commas (0,10 0,10 * * * *)': function(assert) {
assert.expect(1);
assert.doesNotThrow(function() {
new cron.CronTime('0,10 0,10 * * * *');
});
assert.done();
},
'test all commas (0,10 0,10 0,10 0,10 0,10 0,1)': function(assert) {
assert.expect(1);
assert.doesNotThrow(function() {
new cron.CronTime('0,10 0,10 0,10 0,10 0,10 0,1');
});
assert.done();
},
'test alias (* * * * jan *)': function(assert) {
assert.expect(1);
assert.doesNotThrow(function() {
new cron.CronTime('* * * * jan *');
});
assert.done();
},
'test multi aliases (* * * * jan,feb *)': function(assert) {
assert.expect(1);
assert.doesNotThrow(function() {
new cron.CronTime('* * * * jan,feb *');
});
assert.done();
},
'test all aliases (* * * * jan,feb mon,tue)': function(assert) {
assert.expect(1);
assert.doesNotThrow(function() {
new cron.CronTime('* * * * jan,feb mon,tue');
});
assert.done();
},
'test unknown alias (* * * * jar *)': function(assert) {
assert.expect(1);
assert.throws(function() {
new cron.CronTime('* * * * jar *');
});
assert.done();
},
'test unknown alias - short (* * * * j *)': function(assert) {
assert.expect(1);
assert.throws(function() {
new cron.CronTime('* * * * j *');
});
assert.done();
},
'test Date': function(assert) {
assert.expect(1);
var d = new Date();
var ct = new cron.CronTime(d);
assert.equals(ct.source.getTime(), d.getTime());
assert.done();
},
'test day roll-over': function(assert) {
var numHours = 24;
assert.expect(numHours * 2);
var ct = new cron.CronTime('0 0 17 * * *');
for (var hr = 0; hr < numHours; hr++) {
var start = new Date(2012, 3, 16, hr, 30, 30);
var next = ct._getNextDateFrom(start);
assert.ok(next - start < 24*60*60*1000);
assert.ok(next > start);
}
assert.done();
}
});