Merge pull request #59 from brodybits/events-spec-updates

Cordova events test updates in spec
diff --git a/spec/events.spec.js b/spec/events.spec.js
index 08a5498..ef077e1 100644
--- a/spec/events.spec.js
+++ b/spec/events.spec.js
@@ -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);
+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 001 : should not go to infinite loop when trying to forward to self', function () {
-        expect(function () {
+
+    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);
+
+            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 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');
-        }).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');
-        anotherEventEmitter.on('log', logSpy);
-
-        events.forwardEventsTo(anotherEventEmitter);
-        events.emit('log', 'test message #1');
-        expect(logSpy).toHaveBeenCalled();
-
-        logSpy.calls.reset();
-
-        events.forwardEventsTo(events);
-        events.emit('log', 'test message #2');
-        expect(logSpy).not.toHaveBeenCalled();
+            events.emit('log', 'test message #2');
+            expect(logSpy).not.toHaveBeenCalled();
+        });
     });
 });