From bc32a1093640bc3698d6007ac6c12916464c7d0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20Gra=C3=A7a?= Date: Fri, 8 Jun 2018 10:28:12 +0100 Subject: [PATCH] Refactor and add new Events unit tests --- test/base/tests/events.js | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/test/base/tests/events.js b/test/base/tests/events.js index 258af638..90c350ad 100644 --- a/test/base/tests/events.js +++ b/test/base/tests/events.js @@ -1,34 +1,38 @@ -var assert = require('assert'); -var equal = assert.equal; var path = require('path'); -var basePath = process.cwd(); module.exports = function() { - var Events = require(path.resolve(basePath + '/lib/base/events')); + var Events = require(path.resolve(process.cwd(), 'lib/base/events')); describe('Events', function() { var events; - var handlersRun; beforeEach(function() { events = new Events(); - handlersRun = []; - events.on('A', eventHandler('A')); - events.on('B', eventHandler('B')); }); - function eventHandler(event) { - return function() { - handlersRun.push(event); - } - } - describe('#off()', function() { - it('should deregister multiple, space-separated events', function() { + it('should deregister multiple space-separated events', function() { + function eventHandler() { + throw new Error('Expected event handler to have not been called'); + } + + events.on('A', eventHandler); + events.on('B', eventHandler); events.off('A B'); events.trigger('A'); - events.trigger('B'); - equal(handlersRun.length, 0); + + expect(events._eventsCount).to.equal(0); + }); + }); + + describe('#trigger()', function() { + it('should pass additional arguments to the listener', function() { + events.on('event', function(name, arg1, arg2) { + expect(name).to.equal('event'); + expect(arg1).to.equal(1); + expect(arg2).to.equal(2); + }) + events.trigger('event', 1, 2); }); }); });