Skip to content

Commit a1f1d50

Browse files
committed
Check that subscriptions are ready before using
1 parent d59d5c8 commit a1f1d50

File tree

4 files changed

+18
-14
lines changed

4 files changed

+18
-14
lines changed

client/js/helpers/pubsub.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,10 @@ module.exports = function (App, Faye, RSVP, endPoint, clientChannelId, localStor
7272
done(message, true);
7373
});
7474

75-
pubsub.publish('/server' + channel, message || {});
75+
// when subscriptions are ready, publish the message
76+
RSVP.all([subscriptionGet, subscriptionError]).then(function () {
77+
pubsub.publish('/server' + channel, message || {});
78+
});
7679
});
7780
};
7881

server/authorise.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ module.exports = function (app, config, db) {
8282
// accept this request
8383
message.data = message.data || {};
8484
message.data.meta = message.data.meta || {};
85-
message.data.meta.userId = session.userId;
85+
message.data.meta.userId = session.userId.toString();
8686

8787
// extend the session once per day
8888
var ttl = new Date(new Date().getTime() + config.sessionTtl - 1000 * 60 * 60 * 24);

test/pubsub.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@ var pubsub = require('../client/js/helpers/pubsub');
55

66
module.exports = function (sessionId) {
77
return pubsub(null, Faye, RSVP, 'http://localhost:3001/pubsub',
8-
uuid.v1(), { sessionId: sessionId });
8+
uuid.v4(), { sessionId: sessionId });
99
};

test/server/api.session.js

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,22 +35,23 @@ describe('sessions api', function () {
3535
}, done);
3636
});
3737

38-
it('cannot delete a session when not authenticated', function (done){
39-
var pubsub = require('../pubsub')('');
40-
pubsub.subscribeToClient('/error/session', function (message) {
38+
it('cannot delete a session when not authenticated', function (done) {
39+
var pubsubNoSession = require('../pubsub')();
40+
pubsubNoSession.subscribeToClient('/error/session', function (message) {
4141
expect(message.errorCode).to.equal(401);
4242
done();
43-
});
44-
pubsub.publishAwait('/session/destroy', {
45-
sessionId: '62875455e3e2812b6e000001'
46-
}).then(function (message) {
47-
done(new Error('Invalid session deleted'));
48-
}, function (error) {
49-
done(new Error('Delete session returned error'));
43+
}).then(function () {
44+
pubsubNoSession.publishAwait('/session/destroy', {
45+
sessionId: '62875455e3e2812b6e000001'
46+
}).then(function (message) {
47+
done(new Error('Invalid session deleted'));
48+
}, function (error) {
49+
done(new Error('Delete session returned error'));
50+
});
5051
});
5152
});
5253

53-
it('cannot delete a session with an invalid id', function (done){
54+
it('cannot delete a session with an invalid id', function (done) {
5455
pubsub.publishAwait('/session/destroy', {
5556
sessionId: '62875455e3e2812b6e000099'
5657
}).then(function (message) {

0 commit comments

Comments
 (0)