fix(chat): test expectation, short circuit if no group

This commit is contained in:
SabreCat
2022-06-02 16:43:14 -05:00
parent 219bdc088b
commit ce67f06bab
2 changed files with 4 additions and 37 deletions

View File

@@ -402,7 +402,7 @@ describe('POST /chat', () => {
}); });
}); });
it('does not allow slurs in private groups', async () => { it('allows slurs in private groups', async () => {
const { group, members } = await createAndPopulateGroup({ const { group, members } = await createAndPopulateGroup({
groupDetails: { groupDetails: {
name: 'Party', name: 'Party',
@@ -412,42 +412,9 @@ describe('POST /chat', () => {
members: 1, members: 1,
}); });
await expect(members[0].post(`/groups/${group._id}/chat`, { message: testSlurMessage })).to.eventually.be.rejected.and.eql({ const message = await members[0].post(`/groups/${group._id}/chat`, { message: testSlurMessage });
code: 400,
error: 'BadRequest',
message: t('bannedSlurUsed'),
});
// Email sent to mods expect(message.message.id).to.exist;
await sleep(0.5);
expect(email.sendTxn).to.be.calledThrice;
expect(email.sendTxn.args[2][1]).to.eql('slur-report-to-mods');
// Slack message to mods
expect(IncomingWebhook.prototype.send).to.be.calledOnce;
/* eslint-disable camelcase */
expect(IncomingWebhook.prototype.send).to.be.calledWith({
text: `${members[0].profile.name} (${members[0].id}) tried to post a slur`,
attachments: [{
fallback: 'Slur Message',
color: 'danger',
author_name: `@${members[0].auth.local.username} ${members[0].profile.name} (${members[0].auth.local.email}; ${members[0]._id})`,
title: 'Slur in Party - (private party)',
title_link: undefined,
text: testSlurMessage,
mrkdwn_in: [
'text',
],
}],
});
/* eslint-enable camelcase */
// Chat privileges are revoked
await expect(members[0].post(`/groups/${groupWithChat._id}/chat`, { message: testMessage })).to.eventually.be.rejected.and.eql({
code: 401,
error: 'NotAuthorized',
message: t('chatPrivilegesRevoked'),
});
}); });
it('errors when slur is typed in mixed case', async () => { it('errors when slur is typed in mixed case', async () => {

View File

@@ -126,7 +126,7 @@ api.postChat = {
const group = await Group.getGroup({ user, groupId }); const group = await Group.getGroup({ user, groupId });
// Check message for banned slurs // Check message for banned slurs
if (group.privacy !== 'private' && textContainsBannedSlur(req.body.message)) { if (group && group.privacy !== 'private' && textContainsBannedSlur(req.body.message)) {
const { message } = req.body; const { message } = req.body;
user.flags.chatRevoked = true; user.flags.chatRevoked = true;
await user.save(); await user.save();