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.
@@ -1,713 +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
- ".scheduleJob": {
16
- "Returns Job instance": function(test) {
17
- var job = schedule.scheduleJob(new Date(Date.now() + 1000), function() {});
18
-
19
- test.ok(job instanceof schedule.Job);
20
-
21
- job.cancel();
22
- test.done();
23
- }
24
- },
25
- ".scheduleJob(Date, fn)": {
26
- "Runs job once at some date": function(test) {
27
- test.expect(1);
28
-
29
- schedule.scheduleJob(new Date(Date.now() + 3000), function() {
30
- test.ok(true);
31
- });
32
-
33
- setTimeout(function() {
34
- test.done();
35
- }, 3250);
36
-
37
- clock.tick(3250);
38
- },
39
- "Job doesn't emit initial 'scheduled' event": function(test) {
40
- var job = schedule.scheduleJob(new Date(Date.now() + 1000), function() {});
41
-
42
- job.on('scheduled', function() {
43
- test.ok(false);
44
- });
45
-
46
- setTimeout(function() {
47
- test.done();
48
- }, 1250);
49
-
50
- clock.tick(1250);
51
- },
52
- "Won't run job if scheduled in the past": function(test) {
53
- test.expect(1);
54
- var job = schedule.scheduleJob(new Date(Date.now() - 3000), function() {
55
- test.ok(false);
56
- });
57
-
58
- test.equal(job, null);
59
-
60
- setTimeout(function() {
61
- test.done();
62
- }, 1000);
63
-
64
- clock.tick(1000);
65
- }
66
- },
67
- ".scheduleJob(RecurrenceRule, fn)": {
68
- "Runs job at interval based on recur rule, repeating indefinitely": function(test) {
69
- test.expect(3);
70
-
71
- var rule = new schedule.RecurrenceRule();
72
- rule.second = null; // fire every second
73
-
74
- var job = schedule.scheduleJob(rule, function() {
75
- test.ok(true);
76
- });
77
-
78
- setTimeout(function() {
79
- job.cancel();
80
- test.done();
81
- }, 3250);
82
-
83
- clock.tick(3250);
84
- },
85
- "Job doesn't emit initial 'scheduled' event": function(test) {
86
- /*
87
- * If this was Job#schedule it'd fire 4 times.
88
- */
89
- test.expect(3);
90
-
91
- var rule = new schedule.RecurrenceRule();
92
- rule.second = null; // fire every second
93
-
94
- var job = new schedule.scheduleJob(rule, function() {});
95
-
96
- job.on('scheduled', function(runOnDate) {
97
- test.ok(true);
98
- });
99
-
100
- setTimeout(function() {
101
- job.cancel();
102
- test.done();
103
- }, 3250);
104
-
105
- clock.tick(3250);
106
- },
107
- "Doesn't invoke job if recur rule schedules it in the past": function(test) {
108
- test.expect(1);
109
- var rule = new schedule.RecurrenceRule();
110
- rule.year = 1960;
111
-
112
- var job = schedule.scheduleJob(rule, function() {
113
- test.ok(false);
114
- });
115
-
116
- test.equal(job, null);
117
-
118
- setTimeout(function() {
119
- test.done();
120
- }, 1000);
121
-
122
- clock.tick(1000);
123
- }
124
- },
125
- ".scheduleJob({...}, fn)": {
126
- "Runs job at interval based on object, repeating indefinitely": function(test) {
127
- test.expect(3);
128
-
129
- var job = new schedule.scheduleJob({
130
- second: null // Fire every second
131
- }, function() {
132
- test.ok(true);
133
- });
134
-
135
- setTimeout(function() {
136
- job.cancel();
137
- test.done();
138
- }, 3250);
139
-
140
- clock.tick(3250);
141
- },
142
- "Job doesn't emit initial 'scheduled' event": function(test) {
143
- /*
144
- * With Job#schedule this would be 3:
145
- * scheduled at time 0
146
- * scheduled at time 1000
147
- * scheduled at time 2000
148
- */
149
- test.expect(2);
150
-
151
- var job = schedule.scheduleJob({
152
- second: null // fire every second
153
- }, function() {});
154
-
155
- job.on('scheduled', function() {
156
- test.ok(true);
157
- });
158
-
159
- setTimeout(function() {
160
- job.cancel();
161
- test.done();
162
- }, 2250);
163
-
164
- clock.tick(2250);
165
- },
166
- "Doesn't invoke job if object schedules it in the past": function(test) {
167
- test.expect(1);
168
-
169
- var job = schedule.scheduleJob({
170
- year: 1960
171
- }, function() {
172
- test.ok(false);
173
- });
174
-
175
- test.equal(job, null);
176
-
177
- setTimeout(function() {
178
- test.done();
179
- }, 1000);
180
-
181
- clock.tick(1000);
182
- }
183
- },
184
- ".scheduleJob({...}, {...}, fn)": {
185
- "Callback called for each job if callback is provided": function(test) {
186
- test.expect(3);
187
-
188
- var job = new schedule.scheduleJob({
189
- second: null // Fire every second
190
- }, function() {}, function() {
191
- test.ok(true);
192
- });
193
-
194
- setTimeout(function() {
195
- job.cancel();
196
- test.done();
197
- }, 3250);
198
-
199
- clock.tick(3250);
200
- }
201
- },
202
- ".rescheduleJob(job, {...})": {
203
- "Reschedule jobs from object based to object based": function(test) {
204
- test.expect(3);
205
-
206
- var job = new schedule.scheduleJob({
207
- second: null
208
- }, function() {
209
- test.ok(true);
210
- });
211
-
212
- setTimeout(function() {
213
- schedule.rescheduleJob(job, {
214
- minute: null
215
- });
216
- }, 3250);
217
-
218
- setTimeout(function() {
219
- job.cancel();
220
- test.done();
221
- }, 5000);
222
-
223
- clock.tick(5000);
224
- },
225
- "Reschedule jobs from every minutes to every second": function(test) {
226
- test.expect(3);
227
-
228
- var timeout = 60 * 1000;
229
-
230
- var job = new schedule.scheduleJob({
231
- minute: null
232
- }, function() {
233
- test.ok(true);
234
- });
235
-
236
- setTimeout(function() {
237
- schedule.rescheduleJob(job, {
238
- second: null
239
- });
240
- }, timeout);
241
-
242
- setTimeout(function() {
243
- job.cancel();
244
- test.done();
245
- }, timeout + 2250);
246
-
247
- clock.tick(timeout + 2250);
248
- }
249
- },
250
- ".rescheduleJob(job, Date)": {
251
- "Reschedule jobs from Date to Date": function(test) {
252
- test.expect(1);
253
-
254
- var job = new schedule.scheduleJob(new Date(Date.now() + 3000), function() {
255
- test.ok(true);
256
- });
257
-
258
- setTimeout(function() {
259
- schedule.rescheduleJob(job, new Date(Date.now() + 5000));
260
- }, 1000);
261
-
262
- setTimeout(function() {
263
- test.done();
264
- }, 6150);
265
-
266
- clock.tick(6150);
267
- },
268
- "Reschedule jobs that has been executed": function(test) {
269
- test.expect(2);
270
-
271
- var job = new schedule.scheduleJob(new Date(Date.now() + 1000), function() {
272
- test.ok(true);
273
- });
274
-
275
- setTimeout(function() {
276
- schedule.rescheduleJob(job, new Date(Date.now() + 2000));
277
- }, 2000);
278
-
279
- setTimeout(function() {
280
- test.done();
281
- }, 5150);
282
-
283
- clock.tick(5150);
284
- }
285
- },
286
- ".rescheduleJob(job, RecurrenceRule)": {
287
- "Reschedule jobs from RecurrenceRule to RecurrenceRule": function(test) {
288
- test.expect(3);
289
-
290
- var timeout = 60 * 1000;
291
-
292
- var rule = new schedule.RecurrenceRule();
293
- rule.second = null; // fire every second
294
-
295
- var job = schedule.scheduleJob(rule, function() {
296
- test.ok(true);
297
- });
298
-
299
- var newRule = new schedule.RecurrenceRule();
300
- newRule.minute = null;
301
-
302
- setTimeout(function() {
303
- schedule.rescheduleJob(job, newRule);
304
- }, 2250);
305
-
306
- setTimeout(function() {
307
- job.cancel();
308
- test.done();
309
- }, timeout + 2250);
310
-
311
- clock.tick(timeout + 2250);
312
- },
313
- "Reschedule jobs from RecurrenceRule to Date": function(test) {
314
- test.expect(3);
315
-
316
- var rule = new schedule.RecurrenceRule();
317
- rule.second = null; // fire every second
318
-
319
- var job = schedule.scheduleJob(rule, function() {
320
- test.ok(true);
321
- });
322
-
323
- setTimeout(function() {
324
- schedule.rescheduleJob(job, new Date(Date.now() + 2000));
325
- }, 2150);
326
-
327
- setTimeout(function() {
328
- test.done();
329
- }, 4250);
330
-
331
- clock.tick(4250);
332
- },
333
- "Reschedule jobs from RecurrenceRule to {...}": function(test) {
334
- test.expect(3);
335
-
336
- var timeout = 60 * 1000;
337
-
338
- var rule = new schedule.RecurrenceRule();
339
- rule.second = null; // fire every second
340
-
341
- var job = schedule.scheduleJob(rule, function() {
342
- test.ok(true);
343
- });
344
-
345
- setTimeout(function() {
346
- schedule.rescheduleJob(job, {
347
- minute: null
348
- });
349
- }, 2150);
350
-
351
- setTimeout(function() {
352
- job.cancel();
353
- test.done();
354
- }, timeout + 2150);
355
-
356
- clock.tick(timeout + 2150);
357
- },
358
- "Reschedule jobs that is not available": function(test) {
359
- test.expect(4);
360
-
361
- var rule = new schedule.RecurrenceRule();
362
- rule.second = null; // fire every second
363
-
364
- var job = schedule.scheduleJob(rule, function() {
365
- test.ok(true);
366
- });
367
-
368
- setTimeout(function() {
369
- schedule.rescheduleJob(null, new Date(Date.now() + 2000));
370
- }, 2150);
371
-
372
- setTimeout(function() {
373
- job.cancel();
374
- test.done();
375
- }, 4250);
376
-
377
- clock.tick(4250);
378
- }
379
- },
380
- '.rescheduleJob("job name", {...})': {
381
- "Reschedule jobs from object based to object based": function(test) {
382
- test.expect(3);
383
-
384
- var job = new schedule.scheduleJob({
385
- second: null
386
- }, function() {
387
- test.ok(true);
388
- });
389
-
390
- setTimeout(function() {
391
- schedule.rescheduleJob(job.name, {
392
- minute: null
393
- });
394
- }, 3250);
395
-
396
- setTimeout(function() {
397
- job.cancel();
398
- test.done();
399
- }, 5000);
400
-
401
- clock.tick(5000);
402
- },
403
- "Reschedule jobs from every minutes to every second": function(test) {
404
- test.expect(3);
405
-
406
- var timeout = 60 * 1000;
407
-
408
- var job = new schedule.scheduleJob({
409
- minute: null
410
- }, function() {
411
- test.ok(true);
412
- });
413
-
414
- setTimeout(function() {
415
- schedule.rescheduleJob(job.name, {
416
- second: null
417
- });
418
- }, timeout);
419
-
420
- setTimeout(function() {
421
- job.cancel();
422
- test.done();
423
- }, timeout + 2250);
424
-
425
- clock.tick(timeout + 2250);
426
- }
427
- },
428
- '.rescheduleJob("job name", Date)': {
429
- "Reschedule jobs from Date to Date": function(test) {
430
- test.expect(1);
431
-
432
- var job = new schedule.scheduleJob(new Date(Date.now() + 3000), function() {
433
- test.ok(true);
434
- });
435
-
436
- setTimeout(function() {
437
- schedule.rescheduleJob(job.name, new Date(Date.now() + 5000));
438
- }, 1000);
439
-
440
- setTimeout(function() {
441
- test.done();
442
- }, 6150);
443
-
444
- clock.tick(6150);
445
- },
446
- "Reschedule jobs that has been executed": function(test) {
447
- test.expect(2);
448
-
449
- var job = new schedule.scheduleJob(new Date(Date.now() + 1000), function() {
450
- test.ok(true);
451
- });
452
-
453
- setTimeout(function() {
454
- schedule.rescheduleJob(job.name, new Date(Date.now() + 2000));
455
- }, 2000);
456
-
457
- setTimeout(function() {
458
- test.done();
459
- }, 5150);
460
-
461
- clock.tick(5150);
462
- }
463
- },
464
- '.rescheduleJob("job name", RecurrenceRule)': {
465
- "Reschedule jobs from RecurrenceRule to RecurrenceRule": function(test) {
466
- test.expect(3);
467
-
468
- var timeout = 60 * 1000;
469
-
470
- var rule = new schedule.RecurrenceRule();
471
- rule.second = null; // fire every second
472
-
473
- var job = schedule.scheduleJob(rule, function() {
474
- test.ok(true);
475
- });
476
-
477
- var newRule = new schedule.RecurrenceRule();
478
- newRule.minute = null;
479
-
480
- setTimeout(function() {
481
- schedule.rescheduleJob(job.name, newRule);
482
- }, 2250);
483
-
484
- setTimeout(function() {
485
- job.cancel();
486
- test.done();
487
- }, timeout + 2250);
488
-
489
- clock.tick(timeout + 2250);
490
- },
491
- "Reschedule jobs from RecurrenceRule to Date": function(test) {
492
- test.expect(3);
493
-
494
- var rule = new schedule.RecurrenceRule();
495
- rule.second = null; // fire every second
496
-
497
- var job = schedule.scheduleJob(rule, function() {
498
- test.ok(true);
499
- });
500
-
501
- setTimeout(function() {
502
- schedule.rescheduleJob(job.name, new Date(Date.now() + 2000));
503
- }, 2150);
504
-
505
- setTimeout(function() {
506
- test.done();
507
- }, 4250);
508
-
509
- clock.tick(4250);
510
- },
511
- "Reschedule jobs from RecurrenceRule to {...}": function(test) {
512
- test.expect(3);
513
-
514
- var timeout = 60 * 1000;
515
-
516
- var rule = new schedule.RecurrenceRule();
517
- rule.second = null; // fire every second
518
-
519
- var job = schedule.scheduleJob(rule, function() {
520
- test.ok(true);
521
- });
522
-
523
- setTimeout(function() {
524
- schedule.rescheduleJob(job.name, {
525
- minute: null
526
- });
527
- }, 2150);
528
-
529
- setTimeout(function() {
530
- job.cancel();
531
- test.done();
532
- }, timeout + 2150);
533
-
534
- clock.tick(timeout + 2150);
535
- },
536
- "Reschedule jobs that is not available": function(test) {
537
- test.expect(4);
538
-
539
- var rule = new schedule.RecurrenceRule();
540
- rule.second = null; // fire every second
541
-
542
- var job = schedule.scheduleJob(rule, function() {
543
- test.ok(true);
544
- });
545
-
546
- setTimeout(function() {
547
- schedule.rescheduleJob("Blah", new Date(Date.now() + 2000));
548
- }, 2150);
549
-
550
- setTimeout(function() {
551
- job.cancel();
552
- test.done();
553
- }, 4250);
554
-
555
- clock.tick(4250);
556
- }
557
- },
558
- ".cancelJob(Job)": {
559
- "Prevents all future invocations of Job passed in": function(test) {
560
- test.expect(2);
561
-
562
- var job = schedule.scheduleJob({
563
- second: null
564
- }, function() {
565
- test.ok(true);
566
- });
567
-
568
- setTimeout(function() {
569
- schedule.cancelJob(job);
570
- }, 2250);
571
-
572
- setTimeout(function() {
573
- test.done();
574
- }, 3250);
575
-
576
- clock.tick(3250);
577
- },
578
- "Can cancel Jobs scheduled with Job#schedule": function(test) {
579
- test.expect(2);
580
-
581
- var job = new schedule.Job(function() {
582
- test.ok(true);
583
- });
584
-
585
- job.schedule({
586
- second: null
587
- });
588
-
589
- setTimeout(function() {
590
- schedule.cancelJob(job);
591
- }, 2250);
592
-
593
- setTimeout(function() {
594
- test.done();
595
- }, 3250);
596
-
597
- clock.tick(3250);
598
- },
599
- "Job emits 'canceled' event": function(test) {
600
- test.expect(1);
601
-
602
- var job = schedule.scheduleJob({
603
- second: null
604
- }, function() {});
605
-
606
- job.on('canceled', function() {
607
- test.ok(true);
608
- });
609
-
610
- setTimeout(function() {
611
- schedule.cancelJob(job);
612
- test.done();
613
- }, 1250);
614
-
615
- clock.tick(1250);
616
- }
617
- },
618
- '.cancelJob("job name")': {
619
- "Prevents all future invocations of Job identified by name": function(test) {
620
- test.expect(2);
621
-
622
- var job = schedule.scheduleJob({
623
- second: null
624
- }, function() {
625
- test.ok(true);
626
- });
627
-
628
- setTimeout(function() {
629
- schedule.cancelJob(job.name);
630
- }, 2250);
631
-
632
- setTimeout(function() {
633
- test.done();
634
- }, 3250);
635
-
636
- clock.tick(3250);
637
- },
638
- /*
639
- "Can cancel Jobs scheduled with Job#schedule": function(test) {
640
- test.expect(2);
641
-
642
- var job = new schedule.Job(function() {
643
- test.ok(true);
644
- });
645
-
646
- job.schedule({
647
- second: null
648
- });
649
-
650
- setTimeout(function() {
651
- schedule.cancelJob(job.name);
652
- }, 2250);
653
-
654
- setTimeout(function() {
655
- test.done();
656
- }, 3250);
657
- },*/
658
- "Job emits 'canceled' event": function(test) {
659
- test.expect(1);
660
-
661
- var job = schedule.scheduleJob({
662
- second: null
663
- }, function() {});
664
-
665
- job.on('canceled', function() {
666
- test.ok(true);
667
- });
668
-
669
- setTimeout(function() {
670
- schedule.cancelJob(job.name);
671
- test.done();
672
- }, 1250);
673
-
674
- clock.tick(1250);
675
- },
676
- "Does nothing if no job found by that name": function(test) {
677
- test.expect(3);
678
-
679
- var job = schedule.scheduleJob({
680
- second: null
681
- }, function() {
682
- test.ok(true);
683
- });
684
-
685
- setTimeout(function() {
686
- // This cancel should not affect anything
687
- schedule.cancelJob('blah');
688
- }, 2250);
689
-
690
- setTimeout(function() {
691
- job.cancel(); // prevent tests from hanging
692
- test.done();
693
- }, 3250);
694
-
695
- clock.tick(3250);
696
- }
697
- },
698
- '.pendingInvocations()': {
699
- "Retrieves pendingInvocations of the job": function(test) {
700
- var job = schedule.scheduleJob(new Date(Date.now() + 1000), function() {});
701
-
702
- test.ok(job instanceof schedule.Job);
703
- test.ok(job.pendingInvocations()[0].job);
704
-
705
- job.cancel();
706
- test.done();
707
- }
708
- },
709
- tearDown: function(cb) {
710
- clock.restore();
711
- cb();
712
- }
713
- };