You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
956 B
47 lines
956 B
|
|
var pull = require('pull-stream') |
|
var windows = require('../') |
|
|
|
var test = require('tape') |
|
|
|
function rememberStart (start, data) { |
|
return {start: start, data: data} |
|
} |
|
|
|
test('timed window', function (t) { |
|
|
|
var timer |
|
var expected = |
|
[ { start: 0, data: 3 }, |
|
{ start: 3, data: 12 }, |
|
{ start: 6, data: 21 }, |
|
{ start: 9, data: 30 } ] |
|
|
|
pull( |
|
pull.count(13), |
|
pull.asyncMap(function (data, cb) { |
|
setTimeout(function () { |
|
cb(null, data) |
|
}, 100) |
|
}), |
|
windows(function (data, cb) { |
|
if(timer) return |
|
var acc = 0 |
|
timer = setTimeout(function () { |
|
timer = null |
|
console.log('acc', acc) |
|
cb(null, acc) |
|
}, 300) |
|
return function (end, data) { |
|
if(end) return |
|
acc += data |
|
} |
|
}, rememberStart), |
|
pull.collect(function (err, ary) { |
|
t.notOk(err) |
|
console.log(ary) |
|
t.deepEqual(ary, expected) |
|
t.end() |
|
}) |
|
) |
|
})
|
|
|