diff --git a/src/pubsub.js b/src/pubsub.js index 16e1730..5dfd6f7 100644 --- a/src/pubsub.js +++ b/src/pubsub.js @@ -271,13 +271,18 @@ * @function * @public * @alias getSubscriptions + * @return { Array } */ PubSub.getSubscriptions = function getSubscriptions(topic){ var m; + var token; var list = []; for (m in messages){ - if (Object.prototype.hasOwnProperty.call(messages, m) && m.indexOf(topic) === 0){ - list.push(m); + if (Object.prototype.hasOwnProperty.call(messages, m) && m.indexOf(topic) === 0) { + for (token in messages[m]) { + list.push(messages[m][token]); + } + break; } } return list; diff --git a/test/test-getSubscriptions.js b/test/test-getSubscriptions.js index bf1944e..9652eb1 100644 --- a/test/test-getSubscriptions.js +++ b/test/test-getSubscriptions.js @@ -17,4 +17,17 @@ describe('getSubscriptions method', function () { assert.equals(subscriptions,1); }); + it('should return all subscriptions', function() { + var topic = TestHelper.getUniqueString(), + spy1 = sinon.spy(), + spy2 = sinon.spy(); + + PubSub.subscribe(topic, spy1); + PubSub.subscribe(topic, spy2); + + var subscriptions = PubSub.getSubscriptions(topic); + assert.equals(subscriptions[0], spy1); + assert.equals(subscriptions[1], spy2); + }); + });