Add timestamp to moderator Slack messages (fixes #10441) (#10443)

* add timestamp to moderator Slack messages

* fix test errors

* import moment, condense formatting

* add timestamp to author_name variable

* update test to include timestamp, fix footer matching

* change ISODate to Date

* update test to include timestamp
This commit is contained in:
Isabelle Lavandero
2018-06-15 17:01:10 +08:00
committed by Matteo Pagliazzi
parent 26e9827d39
commit 97a069642d
2 changed files with 11 additions and 3 deletions

View File

@@ -5,6 +5,7 @@ import slack from '../../../../../website/server/libs/slack';
import logger from '../../../../../website/server/libs/logger'; import logger from '../../../../../website/server/libs/logger';
import { TAVERN_ID } from '../../../../../website/server/models/group'; import { TAVERN_ID } from '../../../../../website/server/models/group';
import nconf from 'nconf'; import nconf from 'nconf';
import moment from 'moment';
describe('slack', () => { describe('slack', () => {
describe('sendFlagNotification', () => { describe('sendFlagNotification', () => {
@@ -45,13 +46,15 @@ describe('slack', () => {
it('sends a slack webhook', () => { it('sends a slack webhook', () => {
slack.sendFlagNotification(data); slack.sendFlagNotification(data);
const timestamp = `${moment(data.message.timestamp).utc().format('YYYY-MM-DD HH:mm')} UTC`;
expect(IncomingWebhook.prototype.send).to.be.calledOnce; expect(IncomingWebhook.prototype.send).to.be.calledOnce;
expect(IncomingWebhook.prototype.send).to.be.calledWith({ expect(IncomingWebhook.prototype.send).to.be.calledWith({
text: 'flagger (flagger-id; language: flagger-lang) flagged a message', text: 'flagger (flagger-id; language: flagger-lang) flagged a message',
attachments: [{ attachments: [{
fallback: 'Flag Message', fallback: 'Flag Message',
color: 'danger', color: 'danger',
author_name: 'Author - author@example.com - author-id', author_name: `Author - author@example.com - author-id\n${timestamp}`,
title: 'Flag in Some group - (private guild)', title: 'Flag in Some group - (private guild)',
title_link: undefined, title_link: undefined,
text: 'some text', text: 'some text',
@@ -97,9 +100,11 @@ describe('slack', () => {
slack.sendFlagNotification(data); slack.sendFlagNotification(data);
const timestamp = `${moment(data.message.timestamp).utc().format('YYYY-MM-DD HH:mm')} UTC`;
expect(IncomingWebhook.prototype.send).to.be.calledWithMatch({ expect(IncomingWebhook.prototype.send).to.be.calledWithMatch({
attachments: [sandbox.match({ attachments: [sandbox.match({
author_name: 'System Message', author_name: `System Message\n${timestamp}`,
})], })],
}); });
}); });

View File

@@ -3,6 +3,7 @@ import { IncomingWebhook } from '@slack/client';
import logger from './logger'; import logger from './logger';
import { TAVERN_ID } from '../models/group'; import { TAVERN_ID } from '../models/group';
import nconf from 'nconf'; import nconf from 'nconf';
import moment from 'moment';
const SLACK_FLAGGING_URL = nconf.get('SLACK:FLAGGING_URL'); const SLACK_FLAGGING_URL = nconf.get('SLACK:FLAGGING_URL');
const SLACK_FLAGGING_FOOTER_LINK = nconf.get('SLACK:FLAGGING_FOOTER_LINK'); const SLACK_FLAGGING_FOOTER_LINK = nconf.get('SLACK:FLAGGING_FOOTER_LINK');
@@ -52,12 +53,14 @@ function sendFlagNotification ({
authorName = `${message.user} - ${authorEmail} - ${message.uuid}`; authorName = `${message.user} - ${authorEmail} - ${message.uuid}`;
} }
const timestamp = `${moment(message.timestamp).utc().format('YYYY-MM-DD HH:mm')} UTC`;
flagSlack.send({ flagSlack.send({
text, text,
attachments: [{ attachments: [{
fallback: 'Flag Message', fallback: 'Flag Message',
color: 'danger', color: 'danger',
author_name: authorName, author_name: `${authorName}\n${timestamp}`,
title, title,
title_link: titleLink, title_link: titleLink,
text: message.text, text: message.text,