fpes
Version:
Functional Programming for EcmaScript(Javascript)
63 lines (54 loc) • 1.21 kB
JavaScript
import Publisher from '../publisher';
describe('Publisher', function () {
it('sync', function () {
var p = new Publisher();
var v = 0;
v = 0;
p.subscribe((i)=>v=i);
p.publish(1);
v.should.equal(1)
// Clear
p.clear()
p.publish(2);
v.should.equal(1)
});
it('async', function (done) {
var p = new Publisher();
var v = 0;
v = 0;
p.subscribe((i)=>v=i);
p.publish(1, true);
v.should.equal(0)
this.timeout(500);
setTimeout(()=>{
v.should.equal(1)
done();
},30);
});
it('unsubscribe', function () {
var p = new Publisher();
var v = 0;
var callback = (i)=>v=i;
v = 0;
p.subscribe(callback);
p.publish(1);
v.should.equal(1)
v = 0;
p.unsubscribe(callback);
p.publish(1);
v.should.equal(0)
});
it('map', function (done) {
var p = new Publisher();
var v = 0;
v = 0;
p.map((x)=>x+2).map((x)=>x+3).subscribe((i)=>v=i);
p.publish(1, true);
v.should.equal(0);
this.timeout(500);
setTimeout(()=>{
v.should.equal(6)
done();
},30);
});
})