const EventEmitterPubSub = require('../lib/Adapters/PubSub/EventEmitterPubSub') .EventEmitterPubSub; describe('EventEmitterPubSub', function() { it('can publish and subscribe', function() { const publisher = EventEmitterPubSub.createPublisher(); const subscriber = EventEmitterPubSub.createSubscriber(); subscriber.subscribe('testChannel'); // Register mock checked for subscriber let isChecked = false; subscriber.on('message', function(channel, message) { isChecked = true; expect(channel).toBe('testChannel'); expect(message).toBe('testMessage'); }); publisher.publish('testChannel', 'testMessage'); // Make sure the callback is checked expect(isChecked).toBe(true); }); it('can unsubscribe', function() { const publisher = EventEmitterPubSub.createPublisher(); const subscriber = EventEmitterPubSub.createSubscriber(); subscriber.subscribe('testChannel'); subscriber.unsubscribe('testChannel'); // Register mock checked for subscriber let isCalled = false; subscriber.on('message', function() { isCalled = true; }); publisher.publish('testChannel', 'testMessage'); // Make sure the callback is not called expect(isCalled).toBe(false); }); it('can unsubscribe not subscribing channel', function() { const subscriber = EventEmitterPubSub.createSubscriber(); // Make sure subscriber does not throw exception subscriber.unsubscribe('testChannel'); }); });