'use strict'; const assert = require('assert'); const nconf = require('nconf'); const db = require('./mocks/databasemock'); const pubsub = require('../src/pubsub'); describe('pubsub', () => { it('should use the plain event emitter', (done) => { nconf.set('isCluster', false); pubsub.reset(); pubsub.on('testEvent', (message) => { assert.equal(message.foo, 1); pubsub.removeAllListeners('testEvent'); done(); }); pubsub.publish('testEvent', { foo: 1 }); }); it('should use same event emitter', (done) => { pubsub.on('dummyEvent', (message) => { assert.equal(message.foo, 2); pubsub.removeAllListeners('dummyEvent'); pubsub.reset(); done(); }); pubsub.publish('dummyEvent', { foo: 2 }); }); it('should use singleHostCluster', (done) => { const oldValue = nconf.get('singleHostCluster'); nconf.set('singleHostCluster', true); pubsub.on('testEvent', (message) => { assert.equal(message.foo, 3); nconf.set('singleHostCluster', oldValue); pubsub.removeAllListeners('testEvent'); done(); }); pubsub.publish('testEvent', { foo: 3 }); }); it('should use same event emitter', (done) => { const oldValue = nconf.get('singleHostCluster'); pubsub.on('dummyEvent', (message) => { assert.equal(message.foo, 4); nconf.set('singleHostCluster', oldValue); pubsub.removeAllListeners('dummyEvent'); pubsub.reset(); done(); }); pubsub.publish('dummyEvent', { foo: 4 }); }); });