taskbuffer/test/test.5.task.paramflow.ts

65 lines
1.6 KiB
TypeScript
Raw Normal View History

2018-08-04 15:53:22 +00:00
import { expect, tap } from '@pushrocks/tapbundle';
import taskbuffer = require('../ts/index');
2017-06-17 14:56:33 +00:00
2018-08-04 15:53:22 +00:00
import * as smartpromise from '@pushrocks/smartpromise';
import * as smartdelay from '@pushrocks/smartdelay';
2017-06-17 14:56:33 +00:00
2019-09-05 09:35:26 +00:00
const flowTask1 = new taskbuffer.Task({
2017-06-17 14:56:33 +00:00
taskFunction: (x: number) => {
2019-09-05 09:35:26 +00:00
const done = smartpromise.defer();
2018-08-04 15:53:22 +00:00
console.log('flowTask1');
console.log(x);
done.resolve(x);
return done.promise;
2017-06-17 14:56:33 +00:00
}
2018-08-04 15:53:22 +00:00
});
2017-06-17 14:56:33 +00:00
2019-09-05 09:35:26 +00:00
const flowTaskBuffered = new taskbuffer.Task({
2017-06-17 14:56:33 +00:00
taskFunction: (x: number) => {
2019-09-05 09:35:26 +00:00
const done = smartpromise.defer();
2018-08-04 15:53:22 +00:00
console.log('flowTask1');
console.log(x);
done.resolve(x);
return done.promise;
2017-06-17 14:56:33 +00:00
},
buffered: true,
bufferMax: 1
2018-08-04 15:53:22 +00:00
});
2017-06-17 14:56:33 +00:00
2019-09-05 09:35:26 +00:00
const flowTask2 = new taskbuffer.Task({
2017-06-17 14:56:33 +00:00
taskFunction: (x: number) => {
2019-09-05 09:35:26 +00:00
const done = smartpromise.defer();
2018-08-04 15:53:22 +00:00
console.log('flowTask2');
console.log(x);
done.resolve(x);
return done.promise;
2017-06-17 14:56:33 +00:00
},
preTask: flowTask1
2018-08-04 15:53:22 +00:00
});
2017-06-17 14:56:33 +00:00
2019-09-05 09:35:26 +00:00
const flowTask3 = new taskbuffer.Taskchain({
2018-08-04 15:53:22 +00:00
taskArray: [flowTask1, flowTask2]
});
2017-06-17 14:56:33 +00:00
tap.test('should let a value flow through a task', async () => {
2019-09-05 09:35:26 +00:00
const result = await flowTask1.trigger(12);
2018-08-04 15:53:22 +00:00
expect(result).to.equal(12);
});
2017-06-17 14:56:33 +00:00
2017-06-17 15:29:26 +00:00
tap.test('expect values to flow between tasks', async () => {
2019-09-05 09:35:26 +00:00
const result = await flowTask2.trigger(12);
2018-08-04 15:53:22 +00:00
expect(result).to.equal(12);
});
2017-06-17 14:56:33 +00:00
2017-06-17 15:29:26 +00:00
tap.test('expect values to flow between tasks when buffered', async () => {
2019-09-05 09:35:26 +00:00
const result = await flowTaskBuffered.trigger(12);
2018-08-04 15:53:22 +00:00
expect(result).to.equal(12);
});
2017-06-17 14:56:33 +00:00
2017-06-17 15:29:26 +00:00
tap.test('expect values to flow between tasks in Taskchain', async () => {
2019-09-05 09:35:26 +00:00
const result = await flowTask3.trigger(12);
2018-08-04 15:53:22 +00:00
expect(result).to.equal(12);
});
2017-06-17 14:56:33 +00:00
2018-08-04 15:53:22 +00:00
tap.start();