| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 | 
							- var Emitter = require('../index');
 
- var emitter = require('../instance');
 
- var test = require('tape');
 
- test('subscribes to an event', function (t) {
 
-   var emitter = new Emitter();
 
-   emitter.on('test', function () {});
 
-   t.equal(emitter.e.test.length, 1, 'subscribed to event');
 
-   t.end();
 
- });
 
- test('subscribes to an event with context', function (t) {
 
-   var emitter = new Emitter();
 
-   var context = {
 
-     contextValue: true
 
-   };
 
-   emitter.on('test', function () {
 
-     t.ok(this.contextValue, 'is in context');
 
-     t.end();
 
-   }, context);
 
-   emitter.emit('test');
 
- });
 
- test('subscibes only once to an event', function (t) {
 
-   var emitter = new Emitter();
 
-   emitter.once('test', function () {
 
-     t.notOk(emitter.e.test, 'removed event from list');
 
-     t.end();
 
-   });
 
-   emitter.emit('test');
 
- });
 
- test('keeps context when subscribed only once', function (t) {
 
-   var emitter = new Emitter();
 
-   var context = {
 
-     contextValue: true
 
-   };
 
-   emitter.once('test', function () {
 
-     t.ok(this.contextValue, 'is in context');
 
-     t.notOk(emitter.e.test, 'not subscribed anymore');
 
-     t.end();
 
-   }, context);
 
-   emitter.emit('test');
 
- });
 
- test('emits an event', function (t) {
 
-   var emitter = new Emitter();
 
-   emitter.on('test', function () {
 
-     t.ok(true, 'triggered event');
 
-     t.end();
 
-   });
 
-   emitter.emit('test');
 
- });
 
- test('passes all arguments to event listener', function (t) {
 
-   var emitter = new Emitter();
 
-   emitter.on('test', function (arg1, arg2) {
 
-     t.equal(arg1, 'arg1', 'passed the first argument');
 
-     t.equal(arg2, 'arg2', 'passed the second argument');
 
-     t.end();
 
-   });
 
-   emitter.emit('test', 'arg1', 'arg2');
 
- });
 
- test('unsubscribes from all events with name', function (t) {
 
-   var emitter = new Emitter();
 
-   emitter.on('test', function () {
 
-     t.fail('should not get called');
 
-   });
 
-   emitter.off('test');
 
-   emitter.emit('test')
 
-   process.nextTick(function () {
 
-     t.end();
 
-   });
 
- });
 
- test('unsubscribes single event with name and callback', function (t) {
 
-   var emitter = new Emitter();
 
-   var fn = function () {
 
-     t.fail('should not get called');
 
-   }
 
-   emitter.on('test', fn);
 
-   emitter.off('test', fn);
 
-   emitter.emit('test')
 
-   process.nextTick(function () {
 
-     t.end();
 
-   });
 
- });
 
- // Test added by https://github.com/lazd
 
- // From PR: https://github.com/scottcorgan/tiny-emitter/pull/6
 
- test('unsubscribes single event with name and callback when subscribed twice', function (t) {
 
-   var emitter = new Emitter();
 
-   var fn = function () {
 
-     t.fail('should not get called');
 
-   };
 
-   emitter.on('test', fn);
 
-   emitter.on('test', fn);
 
-   emitter.off('test', fn);
 
-   emitter.emit('test');
 
-   process.nextTick(function () {
 
-     t.notOk(emitter.e['test'], 'removes all events');
 
-     t.end();
 
-   });
 
- });
 
- test('unsubscribes single event with name and callback when subscribed twice out of order', function (t) {
 
-   var emitter = new Emitter();
 
-   var calls = 0;
 
-   var fn = function () {
 
-     t.fail('should not get called');
 
-   };
 
-   var fn2 = function () {
 
-     calls++;
 
-   };
 
-   emitter.on('test', fn);
 
-   emitter.on('test', fn2);
 
-   emitter.on('test', fn);
 
-   emitter.off('test', fn);
 
-   emitter.emit('test');
 
-   process.nextTick(function () {
 
-     t.equal(calls, 1, 'callback was called');
 
-     t.end();
 
-   });
 
- });
 
- test('removes an event inside another event', function (t) {
 
-   var emitter = new Emitter();
 
-   emitter.on('test', function () {
 
-     t.equal(emitter.e.test.length, 1, 'event is still in list');
 
-     emitter.off('test');
 
-     t.notOk(emitter.e.test, 0, 'event is gone from list');
 
-     t.end();
 
-   });
 
-   emitter.emit('test');
 
- });
 
- test('event is emitted even if unsubscribed in the event callback', function (t) {
 
-   var emitter = new Emitter();
 
-   var calls = 0;
 
-   var fn = function () {
 
-     calls += 1;
 
-     emitter.off('test', fn);
 
-   };
 
-   emitter.on('test', fn);
 
-   emitter.on('test', function () {
 
-     calls += 1;
 
-   });
 
-   emitter.on('test', function () {
 
-     calls += 1;
 
-   });
 
-   process.nextTick(function () {
 
-     t.equal(calls, 3, 'all callbacks were called');
 
-     t.end();
 
-   });
 
-   emitter.emit('test');
 
- });
 
- test('calling off before any events added does nothing', function (t) {
 
-   var emitter = new Emitter();
 
-   emitter.off('test', function () {});
 
-   t.end();
 
- });
 
- test('emitting event that has not been subscribed to yet', function (t) {
 
-   var emitter = new Emitter();
 
-   emitter.emit('some-event', 'some message');
 
-   t.end();
 
- });
 
- test('unsubscribes single event with name and callback which was subscribed once', function (t) {
 
-   var emitter = new Emitter();
 
-   var fn = function () {
 
-     t.fail('event not unsubscribed');
 
-   }
 
-   emitter.once('test', fn);
 
-   emitter.off('test', fn);
 
-   emitter.emit('test');
 
-   t.end();
 
- });
 
- test('exports an instance', function (t) {
 
-   t.ok(emitter, 'exports an instance')
 
-   t.ok(emitter instanceof Emitter, 'an instance of the Emitter class');
 
-   t.end();
 
- });
 
 
  |