Skip to content
Permalink
Browse files
Merge pull request #59 from brodybits/events-spec-updates
Cordova events test updates in spec
  • Loading branch information
Chris Brody committed Dec 19, 2018
2 parents 6667cfc + 0ceb960 commit 1bb65cabb586117af8cbb409563befb022390fe5
Showing 1 changed file with 60 additions and 22 deletions.
@@ -17,32 +17,70 @@
under the License.
*/

var events = require('../src/events');
const events = require('../src/events');

describe('forwardEventsTo method', function () {
afterEach(function () {
events.forwardEventsTo(null);
});
it('Test 001 : should not go to infinite loop when trying to forward to self', function () {
expect(function () {
events.forwardEventsTo(events);
events.emit('log', 'test message');
}).not.toThrow();
describe('Cordova events', function () {
describe('emit method', function () {
it('Test 001 : should emit events to a listener', function () {
const logSpy = jasmine.createSpy('logSpy');
events.on('log', logSpy);

events.emit('log', 'a test message');
expect(logSpy).toHaveBeenCalledWith('a test message');
});

it('Test 002 : should report if there were any listeners or not', function () {
const r1 = events.emit('myname', 'first');
expect(r1).toBe(false);

const listenerSpy = jasmine.createSpy('listenerSpy');
events.on('myname', listenerSpy);
const r2 = events.emit('myname', 'second');
expect(r2).toBe(true);
expect(listenerSpy).toHaveBeenCalled();
});
});
it('Test 002 : should reset forwarding after trying to forward to self', function () {
var EventEmitter = require('events').EventEmitter;
var anotherEventEmitter = new EventEmitter();
var logSpy = jasmine.createSpy('logSpy');
anotherEventEmitter.on('log', logSpy);

events.forwardEventsTo(anotherEventEmitter);
events.emit('log', 'test message #1');
expect(logSpy).toHaveBeenCalled();
describe('forwardEventsTo method', function () {
afterEach(function () {
events.forwardEventsTo(null);
});

it('Test 003 : should forward events to another event emitter', function () {
const EventEmitter = require('events').EventEmitter;
const anotherEventEmitter = new EventEmitter();
const logSpy = jasmine.createSpy('logSpy');
anotherEventEmitter.on('log', logSpy);

logSpy.calls.reset();
events.forwardEventsTo(anotherEventEmitter);
events.emit('log', 'forwarding test message');
expect(logSpy).toHaveBeenCalledWith('forwarding test message');
});

events.forwardEventsTo(events);
events.emit('log', 'test message #2');
expect(logSpy).not.toHaveBeenCalled();
it('Test 004 : should not go to infinite loop when trying to forward to self', function () {
expect(function () {
events.forwardEventsTo(events);
events.emit('log', 'test message');
}).not.toThrow();
});

it('Test 005 : should reset forwarding after trying to forward to self', function () {
const EventEmitter = require('events').EventEmitter;
const anotherEventEmitter = new EventEmitter();
const logSpy = jasmine.createSpy('logSpy');
anotherEventEmitter.on('log', logSpy);

// should forward events to another event emitter at this point
events.forwardEventsTo(anotherEventEmitter);
events.emit('log', 'test message #1');
expect(logSpy).toHaveBeenCalledWith('test message #1');

logSpy.calls.reset();

// should *not* forward events to another event emitter at this point
events.forwardEventsTo(events);
events.emit('log', 'test message #2');
expect(logSpy).not.toHaveBeenCalled();
});
});
});

0 comments on commit 1bb65ca

Please sign in to comment.