diff --git a/src/pubsub.js b/src/pubsub.js index 59ab8507c9..ee6185be20 100644 --- a/src/pubsub.js +++ b/src/pubsub.js @@ -17,22 +17,22 @@ function get() { pubsub.publish = pubsub.emit.bind(pubsub); } else if (nconf.get('singleHostCluster')) { pubsub = new EventEmitter(); - pubsub.publish = function (event, data) { - if (process.send) { + if (!process.send) { + pubsub.publish = pubsub.emit.bind(pubsub); + } else { + pubsub.publish = function (event, data) { process.send({ action: 'pubsub', event: event, data: data, }); - } else { - pubsub.emit(event, data); - } - }; - process.on('message', function (message) { - if (message && typeof message === 'object' && message.action === 'pubsub') { - pubsub.emit(message.event, message.data); - } - }); + }; + process.on('message', function (message) { + if (message && typeof message === 'object' && message.action === 'pubsub') { + pubsub.emit(message.event, message.data); + } + }); + } } else if (nconf.get('redis')) { pubsub = require('./database/redis/pubsub'); } else if (nconf.get('mongo')) { @@ -42,7 +42,6 @@ function get() { } real = pubsub; - return pubsub; } @@ -56,7 +55,4 @@ module.exports = { removeAllListeners: function (event) { get().removeAllListeners(event); }, - reset: function () { - real = null; - }, }; diff --git a/test/mocks/databasemock.js b/test/mocks/databasemock.js index 53cf386eba..47f3e37b72 100644 --- a/test/mocks/databasemock.js +++ b/test/mocks/databasemock.js @@ -25,7 +25,7 @@ nconf.defaults({ if (!nconf.get('isCluster')) { nconf.set('isPrimary', 'true'); - nconf.set('isCluster', 'false'); + nconf.set('isCluster', 'true'); } var dbType = nconf.get('database'); diff --git a/test/pubsub.js b/test/pubsub.js index 83e551fece..ddec29b900 100644 --- a/test/pubsub.js +++ b/test/pubsub.js @@ -7,21 +7,13 @@ var db = require('./mocks/databasemock'); var pubsub = require('../src/pubsub'); describe('pubsub', function () { - beforeEach(function () { - pubsub.reset(); - }); - afterEach(function () { - pubsub.reset(); - }); it('should use singleHostCluster', function (done) { var oldValue = nconf.get('singleHostCluster'); - var isCluster = nconf.get('isCluster'); nconf.set('singleHostCluster', true); - nconf.set('isCluster', true); pubsub.on('testEvent', function (message) { assert.equal(message.foo, 1); nconf.set('singleHostCluster', oldValue); - nconf.set('isCluster', isCluster); + pubsub.removeAllListeners('testEvent'); done(); }); @@ -30,13 +22,10 @@ describe('pubsub', function () { it('should use the current database\'s pubsub', function (done) { var oldValue = nconf.get('singleHostCluster'); - var isCluster = nconf.get('isCluster'); nconf.set('singleHostCluster', false); - nconf.set('isCluster', true); pubsub.on('testEvent', function (message) { assert.equal(message.foo, 1); nconf.set('singleHostCluster', oldValue); - nconf.set('isCluster', isCluster); pubsub.removeAllListeners('testEvent'); done(); });