From f12c9d23536e44be9b3d9b1a8de7d5388406824c Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Tue, 26 Jan 2016 00:20:56 +0100 Subject: [PATCH] fix removeMember route and tests --- .../groups/POST-groups_id_removeMember.test.js | 2 +- website/src/controllers/api-v3/groups.js | 17 +++++++++++------ 2 files changed, 12 insertions(+), 7 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 cf98902887..0ebde39361 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 @@ -64,7 +64,7 @@ describe('POST /groups/:groupId/removeMember/:memberId', () => { await leader.post(`/groups/${guild._id}/removeMember/${member._id}`); let memberRemoved = await member.get('/user'); - expect(_.findIndex(memberRemoved.guilds, {id: guild._id})).eql(-1); + expect(memberRemoved.guilds.indexOf(guild._id)).eql(-1); }); it('updates memberCount', async () => { diff --git a/website/src/controllers/api-v3/groups.js b/website/src/controllers/api-v3/groups.js index 0c6a35330e..dd298adbf3 100644 --- a/website/src/controllers/api-v3/groups.js +++ b/website/src/controllers/api-v3/groups.js @@ -394,18 +394,23 @@ api.removeGroupMember = { group.memberCount -= 1; if (group.quest && group.quest.leader === member._id) { - group.quest.key = null; - group.quest.leader = null; // TODO markmodified? + group.quest.key = undefined; + group.quest.leader = undefined; } else if (group.quest && group.quest.members) { // remove member from quest - group.quest.members[member._id] = undefined; + group.quest.members[member._id] = undefined; // TODO remmeber to check these are mark modified everywhere + group.markModified('quest.members'); } - if (isInGroup === 'guild') _.pull(member.guilds, group._id); + if (isInGroup === 'guild') { + let i = member.guilds.indexOf(group._id); + if (i !== -1) member.guilds.splice(i, 1); + } if (isInGroup === 'party') member.party._id = undefined; // TODO remove quest information too? - if (member.newMessages.group) { - member.newMessages.group._id = undefined; + if (member.newMessages[group._id]) { + member.newMessages[group._id] = undefined; + member.markModified('newMessages'); } if (group.quest && group.quest.active && group.quest.leader === member._id) {