node-schedule 1.2.4 → 1.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/schedule.js +2 -7
- package/package.json +1 -1
- package/test/.eslintrc +0 -5
- package/test/convenience-method-test.js +0 -713
- package/test/date-convenience-methods-test.js +0 -59
- package/test/es6/job-test.js +0 -33
- package/test/job-test.js +0 -494
- package/test/range-test.js +0 -77
- package/test/recurrence-rule-test.js +0 -375
- package/test/schedule-cron-jobs.js +0 -134
- package/test/start-end-test.js +0 -312
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
'use strict';
|
|
3
|
-
|
|
4
|
-
var sinon = require('sinon');
|
|
5
|
-
var main = require('../package.json').main;
|
|
6
|
-
var schedule = require('../' + main);
|
|
7
|
-
|
|
8
|
-
var clock;
|
|
9
|
-
|
|
10
|
-
module.exports = {
|
|
11
|
-
setUp: function(cb) {
|
|
12
|
-
clock = sinon.useFakeTimers();
|
|
13
|
-
cb();
|
|
14
|
-
},
|
|
15
|
-
"Date string": {
|
|
16
|
-
"Should accept a valid date string": function(test) {
|
|
17
|
-
test.expect(1);
|
|
18
|
-
|
|
19
|
-
schedule.scheduleJob(new Date(Date.now() + 1000).toString(), function() {
|
|
20
|
-
test.ok(true);
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
setTimeout(function() {
|
|
24
|
-
test.done();
|
|
25
|
-
}, 1250);
|
|
26
|
-
|
|
27
|
-
clock.tick(1250);
|
|
28
|
-
},
|
|
29
|
-
"Should not accept invalid string as valid date": function(test) {
|
|
30
|
-
test.expect(1);
|
|
31
|
-
|
|
32
|
-
var job = schedule.scheduleJob("hello!!", function() {
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
test.equal(job, null);
|
|
36
|
-
test.done();
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
"UTC": {
|
|
41
|
-
"Should accept a valid UTC date in milliseconds": function(test) {
|
|
42
|
-
test.expect(1);
|
|
43
|
-
|
|
44
|
-
schedule.scheduleJob(new Date(Date.now() + 1000).getTime(), function() {
|
|
45
|
-
test.ok(true);
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
setTimeout(function() {
|
|
49
|
-
test.done();
|
|
50
|
-
}, 1250);
|
|
51
|
-
|
|
52
|
-
clock.tick(1250);
|
|
53
|
-
}
|
|
54
|
-
},
|
|
55
|
-
tearDown: function(cb) {
|
|
56
|
-
clock.restore();
|
|
57
|
-
cb();
|
|
58
|
-
}
|
|
59
|
-
};
|
package/test/es6/job-test.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
'use strict';
|
|
3
|
-
|
|
4
|
-
module.exports = function(schedule) {
|
|
5
|
-
return {
|
|
6
|
-
jobInGenerator: function(test) {
|
|
7
|
-
test.expect(1);
|
|
8
|
-
|
|
9
|
-
var job = new schedule.Job(function*() {
|
|
10
|
-
test.ok(true);
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
job.runOnDate(new Date(Date.now() + 3000));
|
|
14
|
-
|
|
15
|
-
setTimeout(function() {
|
|
16
|
-
test.done();
|
|
17
|
-
}, 3250);
|
|
18
|
-
},
|
|
19
|
-
jobContextInGenerator: function(test) {
|
|
20
|
-
test.expect(1);
|
|
21
|
-
|
|
22
|
-
var job = new schedule.Job('name of job', function*() {
|
|
23
|
-
test.ok(this.name === 'name of job');
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
job.runOnDate(new Date(Date.now() + 3000));
|
|
27
|
-
|
|
28
|
-
setTimeout(function() {
|
|
29
|
-
test.done();
|
|
30
|
-
}, 3250);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
package/test/job-test.js
DELETED
|
@@ -1,494 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
'use strict';
|
|
3
|
-
|
|
4
|
-
var sinon = require('sinon');
|
|
5
|
-
var main = require('../package.json').main;
|
|
6
|
-
var schedule = require('../' + main);
|
|
7
|
-
|
|
8
|
-
var es6;
|
|
9
|
-
try {
|
|
10
|
-
eval('(function* () {})()');
|
|
11
|
-
es6 = require('./es6/job-test')(schedule);
|
|
12
|
-
} catch (e) {}
|
|
13
|
-
|
|
14
|
-
var clock;
|
|
15
|
-
|
|
16
|
-
module.exports = {
|
|
17
|
-
setUp: function(cb) {
|
|
18
|
-
clock = sinon.useFakeTimers();
|
|
19
|
-
cb();
|
|
20
|
-
},
|
|
21
|
-
"Job constructor": {
|
|
22
|
-
"Accepts Job name and function to run": function(test) {
|
|
23
|
-
var job = new schedule.Job('the job', function() {});
|
|
24
|
-
|
|
25
|
-
test.equal(job.name, 'the job');
|
|
26
|
-
test.done();
|
|
27
|
-
},
|
|
28
|
-
"Job name is optional and will be auto-generated": function(test) {
|
|
29
|
-
var job = new schedule.Job();
|
|
30
|
-
|
|
31
|
-
test.ok(job.name);
|
|
32
|
-
test.done();
|
|
33
|
-
},
|
|
34
|
-
"Uses unique names across auto-generated Job names": function(test) {
|
|
35
|
-
var job1 = new schedule.Job();
|
|
36
|
-
var job2 = new schedule.Job();
|
|
37
|
-
|
|
38
|
-
test.notEqual(job1.name, job2.name);
|
|
39
|
-
test.done();
|
|
40
|
-
}
|
|
41
|
-
},
|
|
42
|
-
"#schedule(Date)": {
|
|
43
|
-
"Runs job once at some date": function(test) {
|
|
44
|
-
test.expect(1);
|
|
45
|
-
|
|
46
|
-
var job = new schedule.Job(function() {
|
|
47
|
-
test.ok(true);
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
job.schedule(new Date(Date.now() + 3000));
|
|
51
|
-
|
|
52
|
-
setTimeout(function() {
|
|
53
|
-
test.done();
|
|
54
|
-
}, 3250);
|
|
55
|
-
|
|
56
|
-
clock.tick(3250);
|
|
57
|
-
},
|
|
58
|
-
"Cancel next job before it runs": function(test) {
|
|
59
|
-
test.expect(1);
|
|
60
|
-
|
|
61
|
-
var job = new schedule.Job(function() {
|
|
62
|
-
test.ok(true);
|
|
63
|
-
});
|
|
64
|
-
|
|
65
|
-
job.schedule(new Date(Date.now() + 1500));
|
|
66
|
-
job.schedule(new Date(Date.now() + 3000));
|
|
67
|
-
job.cancelNext();
|
|
68
|
-
setTimeout(function() {
|
|
69
|
-
test.done();
|
|
70
|
-
}, 3250);
|
|
71
|
-
|
|
72
|
-
clock.tick(3250);
|
|
73
|
-
},
|
|
74
|
-
"Run job on specified date": function(test) {
|
|
75
|
-
test.expect(1);
|
|
76
|
-
|
|
77
|
-
var job = new schedule.Job(function() {
|
|
78
|
-
test.ok(true);
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
job.runOnDate(new Date(Date.now() + 3000));
|
|
82
|
-
|
|
83
|
-
setTimeout(function() {
|
|
84
|
-
test.done();
|
|
85
|
-
}, 3250);
|
|
86
|
-
|
|
87
|
-
clock.tick(3250);
|
|
88
|
-
},
|
|
89
|
-
"Run job in generator": function(test) {
|
|
90
|
-
if (!es6) {
|
|
91
|
-
test.expect(0);
|
|
92
|
-
test.done();
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
es6.jobInGenerator(test);
|
|
97
|
-
|
|
98
|
-
clock.tick(3250);
|
|
99
|
-
},
|
|
100
|
-
"Context is passed into generator correctly": function(test) {
|
|
101
|
-
if (!es6) {
|
|
102
|
-
test.expect(0);
|
|
103
|
-
test.done();
|
|
104
|
-
return;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
es6.jobContextInGenerator(test);
|
|
108
|
-
|
|
109
|
-
clock.tick(3250);
|
|
110
|
-
},
|
|
111
|
-
"Won't run job if scheduled in the past": function(test) {
|
|
112
|
-
test.expect(0);
|
|
113
|
-
|
|
114
|
-
var job = new schedule.Job(function() {
|
|
115
|
-
test.ok(false);
|
|
116
|
-
});
|
|
117
|
-
|
|
118
|
-
job.schedule(new Date(Date.now() - 3000));
|
|
119
|
-
|
|
120
|
-
setTimeout(function() {
|
|
121
|
-
test.done();
|
|
122
|
-
}, 1000);
|
|
123
|
-
|
|
124
|
-
clock.tick(1000);
|
|
125
|
-
},
|
|
126
|
-
"Jobs still run after scheduling a Job in the past": function(test) {
|
|
127
|
-
test.expect(1);
|
|
128
|
-
|
|
129
|
-
var pastJob = new schedule.Job(function() {
|
|
130
|
-
// Should not run, blow up if it does
|
|
131
|
-
test.ok(false);
|
|
132
|
-
});
|
|
133
|
-
|
|
134
|
-
pastJob.schedule(new Date(Date.now() - 3000));
|
|
135
|
-
|
|
136
|
-
var job = new schedule.Job(function() {
|
|
137
|
-
test.ok(true);
|
|
138
|
-
});
|
|
139
|
-
|
|
140
|
-
job.schedule(new Date(Date.now() + 3000));
|
|
141
|
-
|
|
142
|
-
setTimeout(function() {
|
|
143
|
-
test.done();
|
|
144
|
-
}, 3250);
|
|
145
|
-
|
|
146
|
-
clock.tick(3250);
|
|
147
|
-
},
|
|
148
|
-
"Job emits 'scheduled' event with 'run at' Date": function(test) {
|
|
149
|
-
test.expect(1);
|
|
150
|
-
|
|
151
|
-
var date = new Date(Date.now() + 3000);
|
|
152
|
-
var job = new schedule.Job(function() {
|
|
153
|
-
test.done();
|
|
154
|
-
});
|
|
155
|
-
|
|
156
|
-
job.on('scheduled', function(runAtDate) {
|
|
157
|
-
test.equal(runAtDate.getTime(), date.getTime());
|
|
158
|
-
});
|
|
159
|
-
|
|
160
|
-
job.schedule(date);
|
|
161
|
-
clock.tick(3250);
|
|
162
|
-
}
|
|
163
|
-
},
|
|
164
|
-
"#schedule(Date, fn)": {
|
|
165
|
-
"Runs job once at some date, calls callback when done": function(test) {
|
|
166
|
-
test.expect(1);
|
|
167
|
-
|
|
168
|
-
var job = new schedule.Job(function() {}, function() {
|
|
169
|
-
test.ok(true);
|
|
170
|
-
});
|
|
171
|
-
|
|
172
|
-
job.schedule(new Date(Date.now() + 3000));
|
|
173
|
-
|
|
174
|
-
setTimeout(function() {
|
|
175
|
-
test.done();
|
|
176
|
-
}, 3250);
|
|
177
|
-
|
|
178
|
-
clock.tick(3250);
|
|
179
|
-
}
|
|
180
|
-
},
|
|
181
|
-
"#schedule(RecurrenceRule)": {
|
|
182
|
-
"Runs job at interval based on recur rule, repeating indefinitely": function(test) {
|
|
183
|
-
test.expect(3);
|
|
184
|
-
|
|
185
|
-
var job = new schedule.Job(function() {
|
|
186
|
-
test.ok(true);
|
|
187
|
-
});
|
|
188
|
-
|
|
189
|
-
var rule = new schedule.RecurrenceRule();
|
|
190
|
-
rule.second = null; // fire every second
|
|
191
|
-
|
|
192
|
-
job.schedule(rule);
|
|
193
|
-
|
|
194
|
-
setTimeout(function() {
|
|
195
|
-
job.cancel();
|
|
196
|
-
test.done();
|
|
197
|
-
}, 3250);
|
|
198
|
-
|
|
199
|
-
clock.tick(3250);
|
|
200
|
-
},
|
|
201
|
-
"Job emits 'scheduled' event for every next invocation": function(test) {
|
|
202
|
-
// Job will run 3 times but be scheduled 4 times, 4th run never happens
|
|
203
|
-
// due to cancel.
|
|
204
|
-
test.expect(4);
|
|
205
|
-
|
|
206
|
-
var job = new schedule.Job(function() {});
|
|
207
|
-
|
|
208
|
-
job.on('scheduled', function(runOnDate) {
|
|
209
|
-
test.ok(true);
|
|
210
|
-
});
|
|
211
|
-
|
|
212
|
-
var rule = new schedule.RecurrenceRule();
|
|
213
|
-
rule.second = null; // fire every second
|
|
214
|
-
|
|
215
|
-
job.schedule(rule);
|
|
216
|
-
|
|
217
|
-
setTimeout(function() {
|
|
218
|
-
job.cancel();
|
|
219
|
-
test.done();
|
|
220
|
-
}, 3250);
|
|
221
|
-
|
|
222
|
-
clock.tick(3250);
|
|
223
|
-
},
|
|
224
|
-
"Doesn't invoke job if recur rule schedules it in the past": function(test) {
|
|
225
|
-
test.expect(0);
|
|
226
|
-
|
|
227
|
-
var job = new schedule.Job(function() {
|
|
228
|
-
test.ok(false);
|
|
229
|
-
});
|
|
230
|
-
|
|
231
|
-
var rule = new schedule.RecurrenceRule();
|
|
232
|
-
rule.year = 2000;
|
|
233
|
-
|
|
234
|
-
job.schedule(rule);
|
|
235
|
-
|
|
236
|
-
setTimeout(function() {
|
|
237
|
-
job.cancel();
|
|
238
|
-
test.done();
|
|
239
|
-
}, 1000);
|
|
240
|
-
|
|
241
|
-
clock.tick(1000);
|
|
242
|
-
}
|
|
243
|
-
},
|
|
244
|
-
"#schedule({...})": {
|
|
245
|
-
"Runs job at interval based on object, repeating indefinitely": function(test) {
|
|
246
|
-
test.expect(3);
|
|
247
|
-
|
|
248
|
-
var job = new schedule.Job(function() {
|
|
249
|
-
test.ok(true);
|
|
250
|
-
});
|
|
251
|
-
|
|
252
|
-
job.schedule({
|
|
253
|
-
second: null // fire every second
|
|
254
|
-
});
|
|
255
|
-
|
|
256
|
-
setTimeout(function() {
|
|
257
|
-
job.cancel();
|
|
258
|
-
test.done();
|
|
259
|
-
}, 3250);
|
|
260
|
-
|
|
261
|
-
clock.tick(3250);
|
|
262
|
-
},
|
|
263
|
-
"Job emits 'scheduled' event for every next invocation": function(test) {
|
|
264
|
-
// Job will run 3 times but be scheduled 4 times, 4th run never happens
|
|
265
|
-
// due to cancel.
|
|
266
|
-
test.expect(4);
|
|
267
|
-
|
|
268
|
-
var job = new schedule.Job(function() {});
|
|
269
|
-
|
|
270
|
-
job.on('scheduled', function(runOnDate) {
|
|
271
|
-
test.ok(true);
|
|
272
|
-
});
|
|
273
|
-
|
|
274
|
-
job.schedule({
|
|
275
|
-
second: null // Fire every second
|
|
276
|
-
});
|
|
277
|
-
|
|
278
|
-
setTimeout(function() {
|
|
279
|
-
job.cancel();
|
|
280
|
-
test.done();
|
|
281
|
-
}, 3250);
|
|
282
|
-
|
|
283
|
-
clock.tick(3250);
|
|
284
|
-
},
|
|
285
|
-
"Doesn't invoke job if object schedules it in the past": function(test) {
|
|
286
|
-
test.expect(0);
|
|
287
|
-
|
|
288
|
-
var job = new schedule.Job(function() {
|
|
289
|
-
test.ok(false);
|
|
290
|
-
});
|
|
291
|
-
|
|
292
|
-
job.schedule({
|
|
293
|
-
year: 2000
|
|
294
|
-
});
|
|
295
|
-
|
|
296
|
-
setTimeout(function() {
|
|
297
|
-
job.cancel();
|
|
298
|
-
test.done();
|
|
299
|
-
}, 1000);
|
|
300
|
-
|
|
301
|
-
clock.tick(1000);
|
|
302
|
-
}
|
|
303
|
-
},
|
|
304
|
-
"#schedule('jobName', {...})": {
|
|
305
|
-
"Runs job with a custom name input": function(test) {
|
|
306
|
-
test.expect(3);
|
|
307
|
-
|
|
308
|
-
var job = new schedule.Job('jobName', function() {
|
|
309
|
-
test.equal(job.name, 'jobName');
|
|
310
|
-
});
|
|
311
|
-
|
|
312
|
-
job.schedule({
|
|
313
|
-
second: null // fire every second
|
|
314
|
-
});
|
|
315
|
-
|
|
316
|
-
setTimeout(function() {
|
|
317
|
-
job.cancel();
|
|
318
|
-
test.done();
|
|
319
|
-
}, 3250);
|
|
320
|
-
|
|
321
|
-
clock.tick(3250);
|
|
322
|
-
}
|
|
323
|
-
},
|
|
324
|
-
"#schedule({...}, {...})": {
|
|
325
|
-
"Runs job and run callback when job is done if callback is provided": function(test) {
|
|
326
|
-
test.expect(3);
|
|
327
|
-
|
|
328
|
-
var job = new schedule.Job(function() {}, function() {
|
|
329
|
-
test.ok(true);
|
|
330
|
-
});
|
|
331
|
-
|
|
332
|
-
job.schedule({
|
|
333
|
-
second: null // fire every second
|
|
334
|
-
});
|
|
335
|
-
|
|
336
|
-
setTimeout(function() {
|
|
337
|
-
job.cancel();
|
|
338
|
-
test.done();
|
|
339
|
-
}, 3250);
|
|
340
|
-
|
|
341
|
-
clock.tick(3250);
|
|
342
|
-
},
|
|
343
|
-
"Runs job with a custom name input and run callback when job is done": function(test) {
|
|
344
|
-
test.expect(3);
|
|
345
|
-
|
|
346
|
-
var job = new schedule.Job('MyJob', function() {}, function() {
|
|
347
|
-
test.equal(job.name, 'MyJob');
|
|
348
|
-
});
|
|
349
|
-
|
|
350
|
-
job.schedule({
|
|
351
|
-
second: null // fire every second
|
|
352
|
-
});
|
|
353
|
-
|
|
354
|
-
setTimeout(function() {
|
|
355
|
-
job.cancel();
|
|
356
|
-
test.done();
|
|
357
|
-
}, 3250);
|
|
358
|
-
|
|
359
|
-
clock.tick(3250);
|
|
360
|
-
}
|
|
361
|
-
},
|
|
362
|
-
"#cancel": {
|
|
363
|
-
"Prevents all future invocations": function(test) {
|
|
364
|
-
test.expect(1);
|
|
365
|
-
|
|
366
|
-
var job = new schedule.Job(function() {
|
|
367
|
-
test.ok(true);
|
|
368
|
-
});
|
|
369
|
-
|
|
370
|
-
job.schedule({
|
|
371
|
-
second: null // fire every second
|
|
372
|
-
});
|
|
373
|
-
|
|
374
|
-
setTimeout(function() {
|
|
375
|
-
job.cancel();
|
|
376
|
-
}, 1250);
|
|
377
|
-
|
|
378
|
-
setTimeout(function() {
|
|
379
|
-
test.done();
|
|
380
|
-
}, 2250);
|
|
381
|
-
|
|
382
|
-
clock.tick(2250);
|
|
383
|
-
},
|
|
384
|
-
"Job emits 'canceled' event": function(test) {
|
|
385
|
-
test.expect(1);
|
|
386
|
-
|
|
387
|
-
var job = new schedule.Job(function() {});
|
|
388
|
-
|
|
389
|
-
job.on('canceled', function() {
|
|
390
|
-
test.ok(true);
|
|
391
|
-
});
|
|
392
|
-
|
|
393
|
-
job.schedule({
|
|
394
|
-
second: null // fire every second
|
|
395
|
-
});
|
|
396
|
-
|
|
397
|
-
setTimeout(function() {
|
|
398
|
-
job.cancel();
|
|
399
|
-
}, 1250);
|
|
400
|
-
|
|
401
|
-
setTimeout(function() {
|
|
402
|
-
test.done();
|
|
403
|
-
}, 2250);
|
|
404
|
-
|
|
405
|
-
clock.tick(2250);
|
|
406
|
-
},
|
|
407
|
-
"Job is added to scheduledJobs when created and removed when cancelled": function(test) {
|
|
408
|
-
test.expect(4);
|
|
409
|
-
|
|
410
|
-
var job1 = new schedule.Job('cancelJob', function() {});
|
|
411
|
-
job1.schedule({
|
|
412
|
-
second: null // fire every second
|
|
413
|
-
});
|
|
414
|
-
|
|
415
|
-
var job2 = schedule.scheduleJob('second',
|
|
416
|
-
{ second: null },
|
|
417
|
-
function() {},
|
|
418
|
-
function() {});
|
|
419
|
-
|
|
420
|
-
test.strictEqual(schedule.scheduledJobs.cancelJob, job1);
|
|
421
|
-
test.strictEqual(schedule.scheduledJobs.second, job2);
|
|
422
|
-
setTimeout(function() {
|
|
423
|
-
job1.cancel();
|
|
424
|
-
job2.cancel();
|
|
425
|
-
test.strictEqual(schedule.scheduledJobs.cancelJob, undefined);
|
|
426
|
-
test.strictEqual(schedule.scheduledJobs.second, undefined);
|
|
427
|
-
test.done();
|
|
428
|
-
}, 1250);
|
|
429
|
-
|
|
430
|
-
clock.tick(1250);
|
|
431
|
-
}
|
|
432
|
-
},
|
|
433
|
-
"#reschedule": {
|
|
434
|
-
"When rescheduled counter will be reset to zero": function(test) {
|
|
435
|
-
|
|
436
|
-
var job = new schedule.scheduleJob({
|
|
437
|
-
second: null
|
|
438
|
-
}, function() {});
|
|
439
|
-
|
|
440
|
-
setTimeout(function() {
|
|
441
|
-
test.equal(job.triggeredJobs(), 3);
|
|
442
|
-
schedule.rescheduleJob(job, {
|
|
443
|
-
minute: null
|
|
444
|
-
});
|
|
445
|
-
}, 3250);
|
|
446
|
-
|
|
447
|
-
setTimeout(function() {
|
|
448
|
-
job.cancel();
|
|
449
|
-
test.equal(job.triggeredJobs(), 0);
|
|
450
|
-
test.done();
|
|
451
|
-
}, 5000);
|
|
452
|
-
|
|
453
|
-
clock.tick(5000);
|
|
454
|
-
}
|
|
455
|
-
},
|
|
456
|
-
"When invoked": {
|
|
457
|
-
"Job emits 'run' event": function(test) {
|
|
458
|
-
test.expect(1);
|
|
459
|
-
|
|
460
|
-
var job = new schedule.Job(function() {});
|
|
461
|
-
|
|
462
|
-
job.on('run', function() {
|
|
463
|
-
test.ok(true);
|
|
464
|
-
});
|
|
465
|
-
|
|
466
|
-
job.schedule(new Date(Date.now() + 3000));
|
|
467
|
-
|
|
468
|
-
setTimeout(function() {
|
|
469
|
-
test.done();
|
|
470
|
-
}, 3250);
|
|
471
|
-
|
|
472
|
-
clock.tick(3250);
|
|
473
|
-
},
|
|
474
|
-
"Job counter increase properly": function(test) {
|
|
475
|
-
var job = new schedule.Job(function() {});
|
|
476
|
-
|
|
477
|
-
job.schedule({
|
|
478
|
-
second: null // fire every second
|
|
479
|
-
});
|
|
480
|
-
|
|
481
|
-
setTimeout(function() {
|
|
482
|
-
job.cancel();
|
|
483
|
-
test.equal(job.triggeredJobs(), 2);
|
|
484
|
-
test.done();
|
|
485
|
-
}, 2250);
|
|
486
|
-
|
|
487
|
-
clock.tick(2250);
|
|
488
|
-
}
|
|
489
|
-
},
|
|
490
|
-
tearDown: function(cb) {
|
|
491
|
-
clock.restore();
|
|
492
|
-
cb();
|
|
493
|
-
}
|
|
494
|
-
};
|
package/test/range-test.js
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
'use strict';
|
|
3
|
-
|
|
4
|
-
var main = require('../package.json').main;
|
|
5
|
-
var schedule = require('../' + main);
|
|
6
|
-
|
|
7
|
-
module.exports = {
|
|
8
|
-
"step defaults to 1": function(test) {
|
|
9
|
-
var range = new schedule.Range(2, 6);
|
|
10
|
-
|
|
11
|
-
test.equals(1, range.step);
|
|
12
|
-
|
|
13
|
-
test.done();
|
|
14
|
-
},
|
|
15
|
-
"when step is 1": {
|
|
16
|
-
"setUp": function(done) {
|
|
17
|
-
this.range = new schedule.Range(2, 6, 1);
|
|
18
|
-
|
|
19
|
-
done();
|
|
20
|
-
},
|
|
21
|
-
"includes start value": function(test) {
|
|
22
|
-
test.ok(this.range.contains(2));
|
|
23
|
-
|
|
24
|
-
test.done();
|
|
25
|
-
},
|
|
26
|
-
"includes end value": function(test) {
|
|
27
|
-
test.ok(this.range.contains(6));
|
|
28
|
-
|
|
29
|
-
test.done();
|
|
30
|
-
},
|
|
31
|
-
"includes value between start and end": function(test) {
|
|
32
|
-
test.ok(this.range.contains(3));
|
|
33
|
-
|
|
34
|
-
test.done();
|
|
35
|
-
},
|
|
36
|
-
"excludes values outside of start and end": function(test) {
|
|
37
|
-
test.ok(!this.range.contains(1));
|
|
38
|
-
test.ok(!this.range.contains(7));
|
|
39
|
-
|
|
40
|
-
test.done();
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
"when step > 1": {
|
|
44
|
-
"setUp": function(done) {
|
|
45
|
-
this.range = new schedule.Range(2, 6, 2);
|
|
46
|
-
|
|
47
|
-
done();
|
|
48
|
-
},
|
|
49
|
-
"includes start value": function(test) {
|
|
50
|
-
test.ok(this.range.contains(2));
|
|
51
|
-
|
|
52
|
-
test.done();
|
|
53
|
-
},
|
|
54
|
-
"excludes end value": function(test) {
|
|
55
|
-
test.ok(!this.range.contains(6));
|
|
56
|
-
|
|
57
|
-
test.done();
|
|
58
|
-
},
|
|
59
|
-
"includes value between start and end that is evenly divisible by step": function(test) {
|
|
60
|
-
test.ok(this.range.contains(4));
|
|
61
|
-
|
|
62
|
-
test.done();
|
|
63
|
-
},
|
|
64
|
-
"excludes value between start and end that is not evenly divisible by step": function(test) {
|
|
65
|
-
test.ok(!this.range.contains(5));
|
|
66
|
-
|
|
67
|
-
test.done();
|
|
68
|
-
},
|
|
69
|
-
"excludes values outside of start and end": function(test) {
|
|
70
|
-
test.ok(!this.range.contains(1));
|
|
71
|
-
test.ok(!this.range.contains(7));
|
|
72
|
-
|
|
73
|
-
test.done();
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
};
|