2018-02-17 09:55:30 -05:00
|
|
|
const EventEmitterPubSub = require('../src/Adapters/PubSub/EventEmitterPubSub').EventEmitterPubSub;
|
2016-03-10 14:27:00 -08:00
|
|
|
|
|
|
|
|
describe('EventEmitterPubSub', function() {
|
|
|
|
|
it('can publish and subscribe', function() {
|
2018-02-17 09:55:30 -05:00
|
|
|
const publisher = EventEmitterPubSub.createPublisher();
|
|
|
|
|
const subscriber = EventEmitterPubSub.createSubscriber();
|
2016-03-10 14:27:00 -08:00
|
|
|
subscriber.subscribe('testChannel');
|
|
|
|
|
// Register mock checked for subscriber
|
2018-02-17 09:55:30 -05:00
|
|
|
let isChecked = false;
|
2016-03-10 14:27:00 -08:00
|
|
|
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() {
|
2018-02-17 09:55:30 -05:00
|
|
|
const publisher = EventEmitterPubSub.createPublisher();
|
|
|
|
|
const subscriber = EventEmitterPubSub.createSubscriber();
|
2016-03-10 14:27:00 -08:00
|
|
|
subscriber.subscribe('testChannel');
|
|
|
|
|
subscriber.unsubscribe('testChannel');
|
|
|
|
|
// Register mock checked for subscriber
|
2018-02-17 09:55:30 -05:00
|
|
|
let isCalled = false;
|
2016-11-24 15:47:41 -05:00
|
|
|
subscriber.on('message', function() {
|
2016-03-10 14:27:00 -08:00
|
|
|
isCalled = true;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
publisher.publish('testChannel', 'testMessage');
|
|
|
|
|
// Make sure the callback is not called
|
|
|
|
|
expect(isCalled).toBe(false);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('can unsubscribe not subscribing channel', function() {
|
2018-02-17 09:55:30 -05:00
|
|
|
const subscriber = EventEmitterPubSub.createSubscriber();
|
2016-03-10 14:27:00 -08:00
|
|
|
|
|
|
|
|
// Make sure subscriber does not throw exception
|
|
|
|
|
subscriber.unsubscribe('testChannel');
|
|
|
|
|
});
|
|
|
|
|
});
|