implement TaskManager

This commit is contained in:
2017-06-17 16:56:33 +02:00
parent cf1b31d635
commit e1424ea0fb
28 changed files with 592 additions and 284 deletions

View File

@@ -0,0 +1,64 @@
import { expect, tap } from 'tapbundle'
import taskbuffer = require('../dist/index')
import * as q from 'smartq'
import * as smartdelay from 'smartdelay'
let flowTask1 = new taskbuffer.Task({
taskFunction: (x: number) => {
let done = q.defer()
console.log('flowTask1')
console.log(x)
done.resolve(x)
return done.promise
}
})
let flowTaskBuffered = new taskbuffer.Task({
taskFunction: (x: number) => {
let done = q.defer()
console.log('flowTask1')
console.log(x)
done.resolve(x)
return done.promise
},
buffered: true,
bufferMax: 1
})
let flowTask2 = new taskbuffer.Task({
taskFunction: (x: number) => {
let done = q.defer()
console.log('flowTask2')
console.log(x)
done.resolve(x)
return done.promise
},
preTask: flowTask1
})
let flowTask3 = new taskbuffer.Taskchain({
taskArray: [ flowTask1, flowTask2 ]
})
tap.test('should let a value flow through a task', async () => {
let result = await flowTask1.trigger(12)
expect(result).to.equal(12)
})
tap.test('should let a values flow between tasks', async () => {
let result = await flowTask2.trigger(12)
expect(result).to.equal(12)
})
tap.test('expect let a values flow between tasks when buffered', async () => {
let result = await flowTaskBuffered.trigger(12)
expect(result).to.equal(12)
})
tap.test('should let a values flow between tasks in Taskchain', async () => {
let result = await flowTask3.trigger(12)
expect(result).to.equal(12)
})
tap.start()