grafana/public/app/core/specs/emitter.jest.ts

65 lines
1.3 KiB
TypeScript
Raw Normal View History

import {Emitter} from '../utils/emitter';
describe("Emitter", () => {
describe('given 2 subscribers', () => {
it('should notfiy subscribers', () => {
var events = new Emitter();
var sub1Called = false;
var sub2Called = false;
events.on('test', () => {
sub1Called = true;
});
events.on('test', () => {
sub2Called = true;
});
events.emit('test', null);
expect(sub1Called).toBe(true);
expect(sub2Called).toBe(true);
});
it('when subscribing twice', () => {
var events = new Emitter();
var sub1Called = 0;
function handler() {
sub1Called += 1;
}
events.on('test', handler);
events.on('test', handler);
events.emit('test', null);
expect(sub1Called).toBe(2);
});
it('should handle errors', () => {
2016-04-07 18:23:20 -05:00
var events = new Emitter();
var sub1Called = 0;
var sub2Called = 0;
events.on('test', () => {
2016-04-07 18:23:20 -05:00
sub1Called++;
2017-09-21 10:23:31 -05:00
throw {message: "hello"};
2016-04-07 18:23:20 -05:00
});
events.on('test', () => {
sub2Called++;
});
try { events.emit('test', null); } catch (_) { }
try { events.emit('test', null); } catch (_) {}
expect(sub1Called).toBe(2);
expect(sub2Called).toBe(0);
2016-04-07 18:23:20 -05:00
});
});
});