Add Cordova events emit method tests to spec 59/head
authorChristopher J. Brody <chris.brody@gmail.com>
Tue, 18 Dec 2018 18:03:17 +0000 (13:03 -0500)
committerChristopher J. Brody <chris.brody@gmail.com>
Tue, 18 Dec 2018 18:26:23 +0000 (13:26 -0500)
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>
spec/events.spec.js

index 2fa8453..ef077e1 100644 (file)
     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();