50 lines
1.2 KiB
JavaScript
50 lines
1.2 KiB
JavaScript
/* eslint-disable flowtype/require-valid-file-annotation */
|
|
import TestServer from 'fetch-test-server';
|
|
import app from '..';
|
|
import Authentication from '../models/Authentication';
|
|
import { flushdb, seed } from '../test/support';
|
|
import * as Slack from '../slack';
|
|
|
|
const server = new TestServer(app.callback());
|
|
|
|
beforeEach(flushdb);
|
|
afterAll(server.close);
|
|
|
|
jest.mock('../slack', () => ({
|
|
post: jest.fn(),
|
|
}));
|
|
|
|
describe('#hooks.unfurl', async () => {
|
|
it('should return documents', async () => {
|
|
const { user, document } = await seed();
|
|
await Authentication.create({
|
|
serviceId: 'slack',
|
|
userId: user.id,
|
|
teamId: user.teamId,
|
|
token: '',
|
|
});
|
|
|
|
const res = await server.post('/api/hooks.unfurl', {
|
|
body: {
|
|
token: process.env.SLACK_VERIFICATION_TOKEN,
|
|
team_id: 'TXXXXXXXX',
|
|
api_app_id: 'AXXXXXXXXX',
|
|
event: {
|
|
type: 'link_shared',
|
|
channel: 'Cxxxxxx',
|
|
user: user.slackId,
|
|
message_ts: '123456789.9875',
|
|
links: [
|
|
{
|
|
domain: 'getoutline.com',
|
|
url: document.getUrl(),
|
|
},
|
|
],
|
|
},
|
|
},
|
|
});
|
|
expect(res.status).toEqual(200);
|
|
expect(Slack.post).toHaveBeenCalled();
|
|
});
|
|
});
|