taskbuffer/test/test.2.taskchain.ts

49 lines
1.2 KiB
TypeScript

import { expect, tap } from '@pushrocks/tapbundle';
import taskbuffer = require('../ts/index');
import * as smartq from 'smartq';
import * as smartdelay from '@pushrocks/smartdelay';
let task1Executed = false;
let task1 = new taskbuffer.Task({
taskFunction: async () => {
await smartdelay.delayFor(2000);
task1Executed = true;
}
});
let task2Executed = false;
let task2 = new taskbuffer.Task({
taskFunction: async () => {
await smartdelay.delayFor(2000);
task2Executed = true;
}
});
let task3Executed = false;
let task3 = new taskbuffer.Task({
taskFunction: async () => {
await smartdelay.delayFor(2000);
task3Executed = true;
}
});
tap.test('expect run tasks in sequence', async () => {
let testTaskchain = new taskbuffer.Taskchain({
name: 'Taskchain1',
taskArray: [task1, task2, task3]
});
let testPromise = testTaskchain.trigger();
await smartdelay.delayFor(2100);
// tslint:disable-next-line:no-unused-expression
expect(task1Executed).to.be.true;
// tslint:disable-next-line:no-unused-expression
expect(task2Executed).to.be.false;
await smartdelay.delayFor(2100);
// tslint:disable-next-line:no-unused-expression
expect(task2Executed).to.be.true;
await testPromise;
});
tap.start();