diff --git a/package.json b/package.json index 5fc1aed24d..0f9ee88db0 100644 --- a/package.json +++ b/package.json @@ -93,7 +93,7 @@ "npm": "^3.3.10" }, "scripts": { - "test": "gulp test:nodemon & (sleep 20; mocha test/api/v3 --recursive; killall gulp; killall node;)", + "test": "gulp lint && (gulp test:nodemon & (sleep 20; mocha test/api/v3 --recursive; killall gulp; killall node;))", "test:api-v2:unit": "mocha test/server_side", "test:api-v2:integration": "mocha test/api/v2 --recursive", "test:api-v3": "mocha test/api/v3 --recursive", diff --git a/test/api/v3/integration/chat/POST-chat_seen.test.js b/test/api/v3/integration/chat/POST-chat_seen.test.js index 9f90ca3296..8b22461a04 100644 --- a/test/api/v3/integration/chat/POST-chat_seen.test.js +++ b/test/api/v3/integration/chat/POST-chat_seen.test.js @@ -24,8 +24,6 @@ describe('POST /groups/:id/chat/seen', () => { }); it('clears new messages for a guild', async () => { - let user = await guildMember.get('/user'); - await guildMember.post(`/groups/${guild._id}/chat/seen`); let guildThatHasSeenChat = await guildMember.get('/user'); @@ -55,8 +53,6 @@ describe('POST /groups/:id/chat/seen', () => { }); it('clears new messages for a party', async () => { - let user = await partyMember.get('/user'); - await partyMember.post(`/groups/${party._id}/chat/seen`); let partyMemberThatHasSeenChat = await partyMember.get('/user'); diff --git a/website/src/controllers/api-v3/chat.js b/website/src/controllers/api-v3/chat.js index 33daf58a64..6c491c4e7c 100644 --- a/website/src/controllers/api-v3/chat.js +++ b/website/src/controllers/api-v3/chat.js @@ -330,12 +330,10 @@ api.seenChat = { let group = await Group.getGroup({user, groupId}); if (!group) throw new NotFound(res.t('groupNotFound')); - // Skip the auth step, we want this to be fast. If !found with uuid/token, then it just doesn't save - let update = { $unset: {} }; + let update = {$unset: {}}; + update.$unset[`newMessages.${groupId}`] = true; - update.$unset[`newMessages.${groupId}`] = ''; await User.update({_id: user._id}, update).exec(); - res.respond(200); }, }; @@ -382,17 +380,16 @@ api.deleteChat = { await Group.update( {_id: group._id}, - {$pull: {chat: {id: chatId} } } + {$pull: {chat: {id: chatId}}} ); if (chatUpdated) { group = group.toJSON(); - _.remove(group.chat, function removeChat (chat) { - return chat.id === chatId; - }); - res.json(group.chat); + let i = _.findIndex(group.chat, {id: chatId}); + if (i !== -1) group.chat.splice(i, 1); + res.respond(200, group.chat); } else { - res.send(200, {}); + res.respond(200, {}); } }, };