diff --git a/test/api/v3/integration/chat/POST-chat.flag.test.js b/test/api/v3/integration/chat/POST-chat.flag.test.js
index 51a3abb164..187a86614b 100644
--- a/test/api/v3/integration/chat/POST-chat.flag.test.js
+++ b/test/api/v3/integration/chat/POST-chat.flag.test.js
@@ -30,7 +30,7 @@ describe('POST /chat/:chatId/flag', () => {
});
it('Returns an error when user tries to flag their own message', async () => {
- let message = await user.post(`/groups/${group._id}/chat`, { message: TEST_MESSAGE });
+ let message = await user.post(`/groups/${group._id}/chat`, {message: TEST_MESSAGE});
await expect(user.post(`/groups/${group._id}/chat/${message.message.id}/flag`))
.to.eventually.be.rejected.and.eql({
code: 404,
@@ -40,8 +40,24 @@ describe('POST /chat/:chatId/flag', () => {
});
it('Flags a chat', async () => {
- let message = await anotherUser.post(`/groups/${group._id}/chat`, { message: TEST_MESSAGE});
- message = message.message;
+ let { message } = await anotherUser.post(`/groups/${group._id}/chat`, {message: TEST_MESSAGE});
+
+ let flagResult = await user.post(`/groups/${group._id}/chat/${message.id}/flag`);
+ expect(flagResult.flags[user._id]).to.equal(true);
+ expect(flagResult.flagCount).to.equal(1);
+
+ let groupWithFlags = await admin.get(`/groups/${group._id}`);
+
+ let messageToCheck = find(groupWithFlags.chat, {id: message.id});
+ expect(messageToCheck.flags[user._id]).to.equal(true);
+ });
+
+ it('Flags a chat when the author\'s account was deleted', async () => {
+ let deletedUser = await generateUser();
+ let { message } = await deletedUser.post(`/groups/${group._id}/chat`, {message: TEST_MESSAGE});
+ await deletedUser.del('/user', {
+ password: 'password',
+ });
let flagResult = await user.post(`/groups/${group._id}/chat/${message.id}/flag`);
expect(flagResult.flags[user._id]).to.equal(true);
@@ -54,8 +70,7 @@ describe('POST /chat/:chatId/flag', () => {
});
it('Flags a chat with a higher flag acount when an admin flags the message', async () => {
- let message = await user.post(`/groups/${group._id}/chat`, { message: TEST_MESSAGE});
- message = message.message;
+ let { message } = await user.post(`/groups/${group._id}/chat`, {message: TEST_MESSAGE});
let flagResult = await admin.post(`/groups/${group._id}/chat/${message.id}/flag`);
expect(flagResult.flags[admin._id]).to.equal(true);
@@ -69,8 +84,7 @@ describe('POST /chat/:chatId/flag', () => {
});
it('Returns an error when user tries to flag a message that is already flagged', async () => {
- let message = await anotherUser.post(`/groups/${group._id}/chat`, { message: TEST_MESSAGE});
- message = message.message;
+ let { message } = await anotherUser.post(`/groups/${group._id}/chat`, {message: TEST_MESSAGE});
await user.post(`/groups/${group._id}/chat/${message.id}/flag`);
diff --git a/website/client/js/controllers/chatCtrl.js b/website/client/js/controllers/chatCtrl.js
index 935c12a310..976d5d4142 100644
--- a/website/client/js/controllers/chatCtrl.js
+++ b/website/client/js/controllers/chatCtrl.js
@@ -96,20 +96,10 @@ habitrpg.controller('ChatCtrl', ['$scope', 'Groups', 'Chat', 'User', '$http', 'A
$scope.groupId = groupId;
$scope.isSystemMessage = message.uuid === 'system';
- if (message.uuid === 'system') {
- $rootScope.openModal('abuse-flag',{
- controller:'MemberModalCtrl',
- scope: $scope
- });
- } else {
- Members.selectMember(message.uuid)
- .then(function () {
- $rootScope.openModal('abuse-flag',{
- controller:'MemberModalCtrl',
- scope: $scope
- });
- });
- }
+ $rootScope.openModal('abuse-flag',{
+ controller:'MemberModalCtrl',
+ scope: $scope
+ });
}
};
diff --git a/website/server/controllers/api-v3/chat.js b/website/server/controllers/api-v3/chat.js
index 365dac2ba1..51838994bf 100644
--- a/website/server/controllers/api-v3/chat.js
+++ b/website/server/controllers/api-v3/chat.js
@@ -217,7 +217,14 @@ api.flagChat = {
let reporterEmailContent = getUserInfo(user, ['email']).email;
- let authorEmailContent = author ? getUserInfo(author, ['email']).email : 'system';
+ let authorEmailContent;
+ if (author) {
+ authorEmailContent = getUserInfo(author, ['email']).email;
+ } else if (message.uuid === 'system') {
+ authorEmailContent = 'system';
+ } else {
+ authorEmailContent = 'Author Account Deleted';
+ }
let groupUrl = getGroupUrl(group);
diff --git a/website/views/shared/modals/members.jade b/website/views/shared/modals/members.jade
index 2de1f72d94..ef49798624 100644
--- a/website/views/shared/modals/members.jade
+++ b/website/views/shared/modals/members.jade
@@ -102,7 +102,7 @@ script(type='text/ng-template', id='modals/send-gift.html')
script(type='text/ng-template', id='modals/abuse-flag.html')
.modal-header
- h4!=env.t('abuseFlagModalHeading', {name: "{{isSystemMessage ? env.t('systemMessage') : profile.profile.name}}"})
+ h4!=env.t('abuseFlagModalHeading', {name: "{{isSystemMessage ? env.t('systemMessage') : abuseObject.user}}"})
.modal-body
blockquote
markdown(text="abuseObject.text")