Init. Map does not function and only working on backend at the moment.
This commit is contained in:
327
node_modules/ultron/test.js
generated
vendored
Normal file
327
node_modules/ultron/test.js
generated
vendored
Normal file
@ -0,0 +1,327 @@
|
||||
/* istanbul ignore next */
|
||||
describe('Ultron', function () {
|
||||
'use strict';
|
||||
|
||||
var EventEmitter = require('eventemitter3')
|
||||
, EE = require('events').EventEmitter
|
||||
, assume = require('assume')
|
||||
, Ultron = require('./')
|
||||
, ultron
|
||||
, ee;
|
||||
|
||||
beforeEach(function () {
|
||||
ee = new EventEmitter();
|
||||
ultron = new Ultron(ee);
|
||||
});
|
||||
|
||||
afterEach(function () {
|
||||
ultron.destroy();
|
||||
ee.removeAllListeners();
|
||||
});
|
||||
|
||||
it('is exposed as a function', function () {
|
||||
assume(Ultron).is.a('function');
|
||||
});
|
||||
|
||||
it('can be initialized without the new keyword', function () {
|
||||
assume(Ultron(ee)).is.instanceOf(Ultron);
|
||||
});
|
||||
|
||||
it('assigns a unique id to every instance', function () {
|
||||
for (var i = 0; i < 100; i++) {
|
||||
assume(ultron.id).does.not.equal((new Ultron()).id);
|
||||
}
|
||||
});
|
||||
|
||||
it('allows removal through the event emitter', function () {
|
||||
function foo() {}
|
||||
function bar() {}
|
||||
|
||||
ultron.on('foo', foo);
|
||||
ultron.once('foo', bar);
|
||||
|
||||
assume(foo.__ultron).equals(ultron.id);
|
||||
assume(bar.__ultron).equals(ultron.id);
|
||||
assume(ee.listeners('foo').length).equals(2);
|
||||
|
||||
ee.removeListener('foo', foo);
|
||||
assume(ee.listeners('foo').length).equals(1);
|
||||
|
||||
ee.removeListener('foo', bar);
|
||||
assume(ee.listeners('foo').length).equals(0);
|
||||
});
|
||||
|
||||
describe('#on', function () {
|
||||
it('assigns a listener', function () {
|
||||
assume(ee.listeners('foo').length).equals(0);
|
||||
|
||||
function foo() {}
|
||||
|
||||
ultron.on('foo', foo);
|
||||
assume(ee.listeners('foo').length).equals(1);
|
||||
assume(ee.listeners('foo')[0]).equals(foo);
|
||||
});
|
||||
|
||||
it('tags the assigned function', function () {
|
||||
assume(ee.listeners('foo').length).equals(0);
|
||||
|
||||
ultron.on('foo', function () {});
|
||||
assume(ee.listeners('foo')[0].__ultron).equals(ultron.id);
|
||||
});
|
||||
|
||||
it('also passes in the context', function (next) {
|
||||
var context = 1313;
|
||||
|
||||
ultron.on('foo', function (a, b, c) {
|
||||
assume(a).equals('a');
|
||||
assume(b).equals('b');
|
||||
assume(c).equals('c');
|
||||
|
||||
assume(this).equals(context);
|
||||
|
||||
next();
|
||||
}, context);
|
||||
|
||||
ee.emit('foo', 'a', 'b', 'c');
|
||||
});
|
||||
|
||||
it('works with regular eventemitters as well', function (next) {
|
||||
var ee = new EE()
|
||||
, ultron = new Ultron(ee);
|
||||
|
||||
ultron.on('foo', function (a, b, c) {
|
||||
assume(a).equals('a');
|
||||
assume(b).equals('b');
|
||||
assume(c).equals('c');
|
||||
|
||||
next();
|
||||
});
|
||||
|
||||
ee.emit('foo', 'a', 'b', 'c');
|
||||
});
|
||||
});
|
||||
|
||||
describe('#once', function () {
|
||||
it('assigns a listener', function () {
|
||||
assume(ee.listeners('foo').length).equals(0);
|
||||
|
||||
function foo() {}
|
||||
ultron.once('foo', foo);
|
||||
assume(ee.listeners('foo').length).equals(1);
|
||||
assume(ee.listeners('foo')[0]).equals(foo);
|
||||
});
|
||||
|
||||
it('tags the assigned function', function () {
|
||||
assume(ee.listeners('foo').length).equals(0);
|
||||
|
||||
ultron.once('foo', function () {});
|
||||
assume(ee.listeners('foo')[0].__ultron).equals(ultron.id);
|
||||
});
|
||||
|
||||
it('also passes in the context', function (next) {
|
||||
var context = 1313;
|
||||
|
||||
ultron.once('foo', function (a, b, c) {
|
||||
assume(a).equals('a');
|
||||
assume(b).equals('b');
|
||||
assume(c).equals('c');
|
||||
|
||||
assume(this).equals(context);
|
||||
|
||||
next();
|
||||
}, context);
|
||||
|
||||
ee.emit('foo', 'a', 'b', 'c');
|
||||
ee.emit('foo', 'a', 'b', 'c'); // Ensure that we don't double execute
|
||||
});
|
||||
|
||||
it('works with regular eventemitters as well', function (next) {
|
||||
var ee = new EE()
|
||||
, ultron = new Ultron(ee);
|
||||
|
||||
ultron.once('foo', function (a, b, c) {
|
||||
assume(a).equals('a');
|
||||
assume(b).equals('b');
|
||||
assume(c).equals('c');
|
||||
|
||||
next();
|
||||
});
|
||||
|
||||
ee.emit('foo', 'a', 'b', 'c');
|
||||
ee.emit('foo', 'a', 'b', 'c'); // Ensure that we don't double execute
|
||||
});
|
||||
});
|
||||
|
||||
describe('#remove', function () {
|
||||
it('removes only our assigned `on` listeners', function () {
|
||||
function foo() {}
|
||||
function bar() {}
|
||||
|
||||
ee.on('foo', foo);
|
||||
ultron.on('foo', bar);
|
||||
assume(ee.listeners('foo').length).equals(2);
|
||||
|
||||
ultron.remove('foo');
|
||||
assume(ee.listeners('foo').length).equals(1);
|
||||
assume(ee.listeners('foo')[0]).equals(foo);
|
||||
});
|
||||
|
||||
it('removes our private __ultron references', function () {
|
||||
function once() {}
|
||||
function on() {}
|
||||
|
||||
assume('__ultron' in once).is.false();
|
||||
assume('__ultron' in on).is.false();
|
||||
|
||||
ultron.on('foo', on);
|
||||
ultron.once('bar', once);
|
||||
|
||||
assume('__ultron' in once).is.true();
|
||||
assume('__ultron' in on).is.true();
|
||||
|
||||
ultron.remove('foo, bar');
|
||||
|
||||
assume('__ultron' in once).is.false();
|
||||
assume('__ultron' in on).is.false();
|
||||
|
||||
ultron.destroy();
|
||||
|
||||
ee = new EE();
|
||||
ultron = new Ultron(ee);
|
||||
|
||||
assume('__ultron' in once).is.false();
|
||||
assume('__ultron' in on).is.false();
|
||||
|
||||
ultron.on('foo', on);
|
||||
ultron.once('bar', once);
|
||||
|
||||
assume('__ultron' in once).is.true();
|
||||
assume('__ultron' in on).is.true();
|
||||
|
||||
ultron.remove('foo, bar');
|
||||
|
||||
assume('__ultron' in once).is.false();
|
||||
assume('__ultron' in on).is.false();
|
||||
});
|
||||
|
||||
it('removes only our assigned `once` listeners', function () {
|
||||
function foo() {}
|
||||
function bar() {}
|
||||
|
||||
ee.once('foo', foo);
|
||||
ultron.once('foo', bar);
|
||||
assume(ee.listeners('foo').length).equals(2);
|
||||
|
||||
ultron.remove('foo');
|
||||
assume(ee.listeners('foo').length).equals(1);
|
||||
assume(ee.listeners('foo')[0]).equals(foo);
|
||||
});
|
||||
|
||||
it('removes only our assigned `once` listeners from regular EE', function () {
|
||||
var ee = new EE()
|
||||
, ultron = new Ultron(ee);
|
||||
|
||||
function foo() {}
|
||||
function bar() {}
|
||||
|
||||
ee.once('foo', foo);
|
||||
ultron.once('foo', bar);
|
||||
assume(ee.listeners('foo').length).equals(2);
|
||||
|
||||
ultron.remove('foo');
|
||||
assume(ee.listeners('foo').length).equals(1);
|
||||
assume(ee.listeners('foo')[0].listener).equals(foo);
|
||||
});
|
||||
|
||||
it('removes all assigned events if called without args', function () {
|
||||
function foo() {}
|
||||
function bar() {}
|
||||
|
||||
ultron.on('foo', foo);
|
||||
ultron.on('bar', bar);
|
||||
|
||||
assume(ee.listeners('foo').length).equals(1);
|
||||
assume(ee.listeners('bar').length).equals(1);
|
||||
|
||||
ultron.remove();
|
||||
|
||||
assume(ee.listeners('foo').length).equals(0);
|
||||
assume(ee.listeners('bar').length).equals(0);
|
||||
});
|
||||
|
||||
it('removes multiple listeners based on args', function () {
|
||||
function foo() {}
|
||||
function bar() {}
|
||||
function baz() {}
|
||||
|
||||
ultron.on('foo', foo);
|
||||
ultron.on('bar', bar);
|
||||
ultron.on('baz', baz);
|
||||
|
||||
assume(ee.listeners('foo').length).equals(1);
|
||||
assume(ee.listeners('bar').length).equals(1);
|
||||
assume(ee.listeners('baz').length).equals(1);
|
||||
|
||||
ultron.remove('foo', 'bar');
|
||||
|
||||
assume(ee.listeners('foo').length).equals(0);
|
||||
assume(ee.listeners('bar').length).equals(0);
|
||||
assume(ee.listeners('baz').length).equals(1);
|
||||
});
|
||||
|
||||
it('removes multiple listeners if first arg is seperated string', function () {
|
||||
function foo() {}
|
||||
function bar() {}
|
||||
function baz() {}
|
||||
|
||||
ultron.on('foo', foo);
|
||||
ultron.on('bar', bar);
|
||||
ultron.on('baz', baz);
|
||||
|
||||
assume(ee.listeners('foo').length).equals(1);
|
||||
assume(ee.listeners('bar').length).equals(1);
|
||||
assume(ee.listeners('baz').length).equals(1);
|
||||
|
||||
ultron.remove('foo, bar');
|
||||
|
||||
assume(ee.listeners('foo').length).equals(0);
|
||||
assume(ee.listeners('bar').length).equals(0);
|
||||
assume(ee.listeners('baz').length).equals(1);
|
||||
});
|
||||
});
|
||||
|
||||
describe('#destroy', function () {
|
||||
it('removes all listeners', function () {
|
||||
function foo() {}
|
||||
function bar() {}
|
||||
function baz() {}
|
||||
|
||||
ultron.on('foo', foo);
|
||||
ultron.on('bar', bar);
|
||||
ultron.on('baz', baz);
|
||||
|
||||
assume(ee.listeners('foo').length).equals(1);
|
||||
assume(ee.listeners('bar').length).equals(1);
|
||||
assume(ee.listeners('baz').length).equals(1);
|
||||
|
||||
ultron.destroy();
|
||||
|
||||
assume(ee.listeners('foo').length).equals(0);
|
||||
assume(ee.listeners('bar').length).equals(0);
|
||||
assume(ee.listeners('baz').length).equals(0);
|
||||
});
|
||||
|
||||
it('removes the .ee reference', function () {
|
||||
assume(ultron.ee).equals(ee);
|
||||
ultron.destroy();
|
||||
assume(ultron.ee).equals(null);
|
||||
});
|
||||
|
||||
it('returns booleans for state indication', function () {
|
||||
assume(ultron.destroy()).is.true();
|
||||
assume(ultron.destroy()).is.false();
|
||||
assume(ultron.destroy()).is.false();
|
||||
assume(ultron.destroy()).is.false();
|
||||
});
|
||||
});
|
||||
});
|
Reference in New Issue
Block a user