Server IP : 162.213.251.212 / Your IP : 18.219.115.86 [ Web Server : LiteSpeed System : Linux business55.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : allssztx ( 535) PHP Version : 8.1.31 Disable Function : NONE Domains : 1 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/allssztx/needapair.com/node_modules/node-cron/test/ |
Upload File : |
const { assert } = require('chai'); const sinon = require('sinon'); const Scheduler = require('../src/scheduler'); describe('Scheduler', () => { beforeEach(() => { this.clock = sinon.useFakeTimers(); }); afterEach(() => { this.clock.restore(); }); it('should emit an event on matched time', (done) => { let scheduler = new Scheduler('* * * * * *'); scheduler.on('scheduled-time-matched', (date) => { assert.isNotNull(date); assert.instanceOf(date, Date); scheduler.stop(); done(); }); scheduler.start(); this.clock.tick(1000); }); it('should emit an event every second', (done) => { let scheduler = new Scheduler('* * * * * *'); let emited = 0; scheduler.on('scheduled-time-matched', (date) => { emited += 1; assert.isNotNull(date); assert.instanceOf(date, Date); if(emited === 5){ scheduler.stop(); done(); } }); scheduler.start(); this.clock.tick(5000); }); it('should recover missed executions', (done) => { this.clock.restore(); let scheduler = new Scheduler('* * * * * *', null, true); let emited = 0; scheduler.on('scheduled-time-matched', () => { emited += 1; }); scheduler.start(); let wait = true; let startedAt = new Date(); while(wait){ if((new Date().getTime() - startedAt.getTime()) > 1000){ wait = false; } } setTimeout(() => { scheduler.stop(); assert.equal(2, emited); done(); }, 1000); }).timeout(3000); it('should ignore missed executions', (done) => { this.clock.restore(); let scheduler = new Scheduler('* * * * * *', null, false); let emited = 0; scheduler.on('scheduled-time-matched', () => { emited += 1; }); scheduler.start(); let wait = true; let startedAt = new Date(); while(wait){ if((new Date().getTime() - startedAt.getTime()) > 1000){ wait = false; } } setTimeout(() => { scheduler.stop(); assert.equal(1, emited); done(); }, 1000); }).timeout(3000); });