From ce7d0039f8b3193812a3f035cefceb1303f8ce2f Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Mon, 24 Aug 2015 17:36:06 -0500 Subject: [PATCH] Q-ify save functions --- test/server_side/controllers/groups.test.js | 11 +++-------- website/src/controllers/groups.js | 13 +++++++++---- .../views/options/social/quests/participants.jade | 2 +- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/test/server_side/controllers/groups.test.js b/test/server_side/controllers/groups.test.js index 095951fb94..c9b8e8ac58 100644 --- a/test/server_side/controllers/groups.test.js +++ b/test/server_side/controllers/groups.test.js @@ -11,8 +11,6 @@ describe('Groups Controller', function() { var res, req, group, user, saveSpy; beforeEach(function() { - sinon.stub(process, 'nextTick').yields(); - group = { _id: 'group-id', type: 'party', @@ -47,6 +45,7 @@ describe('Groups Controller', function() { RSVPNeeded : false } }, + save: sinon.stub().yields(), markModified: sinon.spy() }; @@ -62,10 +61,6 @@ describe('Groups Controller', function() { req = { }; }); - afterEach(function () { - process.nextTick.restore(); - }); - context('error conditions', function() { it('errors if quest is not active', function() { group.quest.active = false; @@ -104,13 +99,13 @@ describe('Groups Controller', function() { }); it('sends 500 if group cannot save', function() { - group.save = sinon.stub().yields('save error'); + group.save = sinon.stub().throws({err: 'save error'}); var nextSpy = sinon.spy(); groupsController.questLeave(req, res, nextSpy); expect(nextSpy).to.be.calledOnce; - expect(nextSpy).to.be.calledWith('save error'); + expect(nextSpy).to.be.calledWith({err: 'save error'}); }); }); diff --git a/website/src/controllers/groups.js b/website/src/controllers/groups.js index 637a207e1b..fe92a3a4e1 100644 --- a/website/src/controllers/groups.js +++ b/website/src/controllers/groups.js @@ -1097,8 +1097,13 @@ api.questLeave = function(req, res, next) { user.party.quest = Group.cleanQuestProgress(); user.markModified('party.quest'); - group.save(function(err, result) { - if (err) return next(err); - return res.send(204); - }); + var groupSavePromise = Q.nbind(group.save, group); + var userSavePromise = Q.nbind(user.save, user); + + Q.all([groupSavePromise(), userSavePromise()]) + .done(function(values) { + return res.send(204); + }, function(error) { + return next(error); + }); } diff --git a/website/views/options/social/quests/participants.jade b/website/views/options/social/quests/participants.jade index 16f5d68d4c..aebb32c939 100644 --- a/website/views/options/social/quests/participants.jade +++ b/website/views/options/social/quests/participants.jade @@ -2,7 +2,7 @@ mixin participants(questStart) -var isMember = 'group.quest.members[member._id]' table.table.table-striped tr(ng-repeat='member in group.members track by member._id', - ng-if='::#{!questStart} || #{isMember}') + ng-if='#{!questStart} || #{isMember}') td span(ng-if=':: group.quest.leader && group.quest.leader==member._id') *  a: span(ng-click='clickMember(member._id, true)') {{::member.profile.name}}