All files / src/event eventhandler.spec.ts

100% Statements 24/24
100% Branches 0/0
100% Functions 5/5
100% Lines 24/24
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 401x   1x   1x 1x   1x       1x 3x     1x 1x 1x 1x 1x 1x     1x 1x 1x 1x 1x     1x 1x 1x 1x 1x 1x        
import EventHandler from './eventhandler';
 
describe('eventhandler', function(){
 
	const chai = require('chai');
	const expect = chai.expect;
 
	chai.use(require('chai-spies'));
 
	let eventhandler: EventHandler;
 
	beforeEach(function(){
		eventhandler = new EventHandler();
	});
 
	it('should call listener on named event', function(){
		const callback = chai.spy();
		eventhandler.on('foo', callback);
		eventhandler.trigger('foo', {bar: true});
		expect(callback).to.have.been.called.once();
		expect(callback).to.have.been.called.with.exactly('foo', {bar: true});
	});
 
	it('should not call listener on other events', function(){
		const callback = chai.spy();
		eventhandler.on('foo', callback);
		eventhandler.trigger('spam', {bar: true});
		expect(callback).not.to.have.been.called();
	});
 
	it('should call wildcard listener on any event', function(){
		const callback = chai.spy();
		eventhandler.on('*', callback);
		eventhandler.trigger('foo', {bar: true});
		expect(callback).to.have.been.called.once();
		expect(callback).to.have.been.called.with.exactly('foo', {bar: true});
	});
 
});