import { expect, tap } from '@pushrocks/tapbundle'; import taskbuffer = require('../ts/index'); import * as smartpromise from '@pushrocks/smartpromise'; import * as smartdelay from '@pushrocks/smartdelay'; let myTaskManager: taskbuffer.TaskManager; let taskRunCounter = 0; const taskDone = smartpromise.defer(); tap.test('should create an instance of TaskManager', async () => { myTaskManager = new taskbuffer.TaskManager(); expect(myTaskManager).to.be.instanceof(taskbuffer.TaskManager); }); tap.test('should run the task as expected', async () => { let referenceBoolean = false; myTaskManager.addTask( new taskbuffer.Task({ name: 'myTask', taskFunction: async () => { console.log('Task executed!'); referenceBoolean = true; taskRunCounter++; if (taskRunCounter === 10) { taskDone.resolve(); } }, }) ); myTaskManager.start(); await myTaskManager.triggerTaskByName('myTask'); // tslint:disable-next-line:no-unused-expression expect(referenceBoolean).to.be.true; }); tap.test('should schedule task', async () => { myTaskManager.scheduleTaskByName('myTask', '* * * * * *'); await taskDone.promise; myTaskManager.descheduleTaskByName('myTask'); }); tap.test('should stop the taskmanager', async () => { myTaskManager.stop(); }); tap.start();