From a798c4ef0840e479eca1fc1fc9206bc7106dd683 Mon Sep 17 00:00:00 2001 From: Husman Date: Mon, 18 Jul 2016 19:18:17 -0700 Subject: [PATCH] fix: removing party invitations --- .../integration/groups/POST-groups_id_removeMember.test.js | 4 +++- test/helpers/api-integration/v3/object-generators.js | 4 ++++ website/server/controllers/api-v3/groups.js | 5 +++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/test/api/v3/integration/groups/POST-groups_id_removeMember.test.js b/test/api/v3/integration/groups/POST-groups_id_removeMember.test.js index 0ebde39361..9b197766b1 100644 --- a/test/api/v3/integration/groups/POST-groups_id_removeMember.test.js +++ b/test/api/v3/integration/groups/POST-groups_id_removeMember.test.js @@ -120,11 +120,13 @@ describe('POST /groups/:groupId/removeMember/:memberId', () => { }); it('can remove other invites', async () => { + expect(partyInvitedUser.invitations.party).to.not.be.empty; + await partyleader.post(`/groups/${party._id}/removeMember/${partyInvitedUser._id}`); let invitedUserWithoutInvite = await partyInvitedUser.get('/user'); - expect(_.findIndex(invitedUserWithoutInvite.invitations.party, {id: party._id})).eql(-1); + expect(invitedUserWithoutInvite.invitations.party).to.be.empty; }); }); }); diff --git a/test/helpers/api-integration/v3/object-generators.js b/test/helpers/api-integration/v3/object-generators.js index f257c3543f..501bda6cdc 100644 --- a/test/helpers/api-integration/v3/object-generators.js +++ b/test/helpers/api-integration/v3/object-generators.js @@ -128,6 +128,10 @@ export async function createAndPopulateGroup (settings = {}) { await Bluebird.all(invitationPromises); + await Bluebird.all(invitees.map((invitee) => { + return invitee.sync(); + })); + return { groupLeader, group, diff --git a/website/server/controllers/api-v3/groups.js b/website/server/controllers/api-v3/groups.js index 1c03d71f35..e3fe3708b4 100644 --- a/website/server/controllers/api-v3/groups.js +++ b/website/server/controllers/api-v3/groups.js @@ -466,8 +466,8 @@ api.removeGroupMember = { removeFromArray(member.invitations.guilds, { id: group._id }); } if (isInvited === 'party') { - user.invitations.party = {}; - user.markModified('invitations.party'); + member.invitations.party = {}; + member.markModified('invitations.party'); } } else { throw new NotFound(res.t('groupMemberNotFound')); @@ -514,6 +514,7 @@ async function _inviteByUUID (uuid, group, inviter, req, res) { } userToInvite.invitations.party = {id: group._id, name: group.name, inviter: inviter._id}; + return userToInvite.save(); } let groupLabel = group.type === 'guild' ? 'Guild' : 'Party';