emitter_specs.ts 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import {describe, beforeEach, it, sinon, expect} from 'test/lib/common'
  2. import {Emitter} from 'app/core/core';
  3. describe("Emitter", () => {
  4. describe('given 2 subscribers', () => {
  5. it('should notfiy subscribers', () => {
  6. var events = new Emitter();
  7. var sub1Called = false;
  8. var sub2Called = false;
  9. events.on('test', () => {
  10. sub1Called = true;
  11. });
  12. events.on('test', () => {
  13. sub2Called = true;
  14. });
  15. events.emit('test', null);
  16. expect(sub1Called).to.be(true);
  17. expect(sub2Called).to.be(true);
  18. });
  19. it('should handle errors', () => {
  20. var events = new Emitter();
  21. var sub1Called = 0;
  22. var sub2Called = 0;
  23. events.on('test', () => {
  24. sub1Called++;
  25. throw "hello";
  26. });
  27. events.on('test', () => {
  28. sub2Called++;
  29. });
  30. try { events.emit('test', null); } catch (_) { }
  31. try { events.emit('test', null); } catch (_) {}
  32. expect(sub1Called).to.be(2);
  33. expect(sub2Called).to.be(0);
  34. });
  35. });
  36. });