Skip to content
Permalink
Browse files
Add Cordova events emit method tests to spec
based on existing test code

with other minor Cordova events test updates

Co-authored-by: Christopher J. Brody <chris.brody@gmail.com>
Co-authored-by: daserge <v-seshak@microsoft.com>
  • Loading branch information
Christopher J. Brody and daserge committed Dec 18, 2018
1 parent 87504de commit 0ceb960e97578b70eb117fa04c0a4bbfc88f382f
Showing 1 changed file with 43 additions and 7 deletions.
@@ -17,31 +17,67 @@
under the License.
*/

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

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();
});
});

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 () {

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);

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

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 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');

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).toHaveBeenCalled();
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 0ceb960

Please sign in to comment.