UNPKG

@bett3r-dev/flyd

Version:

The less is more, modular, functional reactive programming library

62 lines (58 loc) 1.42 kB
var assert = require('assert'); var flyd = require('../../../lib'); var stream = flyd.stream; var afterSilence = require('../index.js'); // KISS way of testing time dependent code :) describe('afterSilence', function() { it('correctly buffers values', function(done) { var result = []; var i = 0; var s1 = stream(); var push = function() { s1(i++); }; var s2 = afterSilence(50, s1); flyd.map(function(vs) { result.push(vs); }, s2); setTimeout(push, 20); setTimeout(push, 30); setTimeout(push, 40); setTimeout(push, 95); setTimeout(push, 100); setTimeout(push, 110); setTimeout(push, 120); setTimeout(push, 175); setTimeout(function() { assert.deepEqual(result, [ [0, 1, 2], [3, 4, 5, 6], [7] ]); done(); }, 240); }); it('only emits values after specified silence', function(done) { var result = []; var i = 0; var s1 = stream(); var push = function() { s1(i++); }; var s2 = afterSilence(20, s1); flyd.map(function(vs) { result.push(vs); }, s2); setTimeout(push, 10); setTimeout(push, 20); setTimeout(push, 30); setTimeout(push, 40); setTimeout(function() { assert.equal(result.length, 0); }, 50); setTimeout(function() { assert.deepEqual(result, [[0, 1, 2, 3]]); done(); }, 65); }); });