UNPKG

fpes

Version:

Functional Programming for EcmaScript(Javascript)

63 lines (54 loc) 1.21 kB
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); }); })