UNPKG

simple-job-scheduler

Version:

A simple job scheduling system written in TypeScript

41 lines 4.14 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const chai_1 = require("chai"); const Scheduler_1 = require("../lib/Scheduler"); const waitTimeout = (durationInMillis) => new Promise((resolve) => setTimeout(resolve, durationInMillis)); describe('Scheduler tests', () => { let executionCount; const scheduler = new Scheduler_1.Scheduler(); beforeEach(() => { executionCount = 0; }); afterEach(() => { scheduler.cancelAll(); }); it('checking that once started the scheduled runnable is executed', async () => { // eslint-disable-next-line no-return-assign scheduler.schedule('test', () => executionCount += 1, 5); await waitTimeout(80); chai_1.expect(executionCount).to.be.greaterThan(0); }); it('verify that once the job is stopped, the runnable function is not called anymore', async () => { // eslint-disable-next-line no-return-assign const job = scheduler.schedule('test', () => executionCount += 1, 5); await waitTimeout(50); job.cancel(); const executedCount = executionCount; await waitTimeout(50); chai_1.expect(executionCount).to.be.equals(executedCount); }); it('verify that started multiple time the same job name has no effect', async () => { // eslint-disable-next-line no-return-assign scheduler.schedule('test', () => executionCount += 1, 5); // eslint-disable-next-line no-return-assign scheduler.schedule('test', () => executionCount += 1000, 5); // eslint-disable-next-line no-return-assign scheduler.schedule('test', () => executionCount += 1000, 5); await waitTimeout(80); chai_1.expect(executionCount).to.be.below(20); }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2NoZWR1bGVyLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdHMvU2NoZWR1bGVyLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwrQkFBOEI7QUFDOUIsZ0RBQTZDO0FBRTdDLE1BQU0sV0FBVyxHQUFHLENBQUMsZ0JBQXdCLEVBQUUsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQztBQUVsSCxRQUFRLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFO0lBQy9CLElBQUksY0FBc0IsQ0FBQztJQUMzQixNQUFNLFNBQVMsR0FBRyxJQUFJLHFCQUFTLEVBQUUsQ0FBQztJQUVsQyxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsY0FBYyxHQUFHLENBQUMsQ0FBQztJQUNyQixDQUFDLENBQUMsQ0FBQztJQUVILFNBQVMsQ0FBQyxHQUFHLEVBQUU7UUFDYixTQUFTLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsK0RBQStELEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDN0UsNENBQTRDO1FBQzVDLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLGNBQWMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekQsTUFBTSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEIsYUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGtGQUFrRixFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ2hHLDRDQUE0QztRQUM1QyxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxjQUFjLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RCLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNiLE1BQU0sYUFBYSxHQUFHLGNBQWMsQ0FBQztRQUNyQyxNQUFNLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QixhQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDckQsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsbUVBQW1FLEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDakYsNENBQTRDO1FBQzVDLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLGNBQWMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDekQsNENBQTRDO1FBQzVDLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLGNBQWMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUQsNENBQTRDO1FBQzVDLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLGNBQWMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUQsTUFBTSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEIsYUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==