@bett3r-dev/flyd
Version:
The less is more, modular, functional reactive programming library
38 lines (35 loc) • 849 B
JavaScript
var assert = require('assert');
var flyd = require('../../../lib');
var stream = flyd.stream;
var keepWhen = require('../index.js');
describe('keepWhen', function() {
it('keeps values from second stream when first is true', function() {
var result = [];
var s = stream(1);
var b = stream(false);
var k = keepWhen(b, s);
flyd.map(function(v) {
result.push(v);
}, k);
s(2);
b(true);
s(3)(4);
b(false);
s(5);
b(true);
s(6);
assert.deepEqual(result, [3, 4, 6]);
});
it('doesnt emit anything until second stream has a value', function() {
var result = [];
var s = stream();
var b = stream(false);
var k = keepWhen(b, s);
flyd.map(function(v) {
result.push(v);
}, k);
b(true)(false)(true);
s(3)(4);
assert.deepEqual(result, [3, 4]);
});
});