Merge tag '21.36.0' into develop
[gitter.git] / test / request-api-tests / rooms / chat-message-report-test.js
blob61c995b8c58daef2dc3569fb357e910a2bc6ca98
1 'use strict';
3 process.env.DISABLE_API_LISTEN = '1';
5 var fixtureLoader = require('gitter-web-test-utils/lib/test-fixtures');
6 var assert = require('assert');
8 describe('chat-api', function() {
9   var app, request;
11   fixtureLoader.ensureIntegrationEnvironment('#oauthTokens');
13   before(function() {
14     if (this._skipFixtureSetup) return;
16     request = require('supertest');
17     app = require('../../../server/api');
18   });
20   var fixture = fixtureLoader.setup({
21     oAuthClient1: {},
22     oAuthAccessTokenAnonymous: { client: 'oAuthClient1', user: null },
23     user1: {
24       accessToken: 'web-internal'
25     },
26     user2: {
27       accessToken: 'web-internal'
28     },
29     user3: {
30       accessToken: 'web-internal'
31     },
32     troupe1: {
33       security: 'PUBLIC',
34       users: ['user1'],
35       securityDescriptor: {
36         extraAdmins: ['user3']
37       }
38     },
39     messageBad2: {
40       user: 'user1',
41       troupe: 'troupe1',
42       text: 'HELLO1',
43       sent: new Date(),
44       pub: 1
45     },
46     messageBad3: {
47       user: 'user1',
48       troupe: 'troupe1',
49       text: 'HELLO1',
50       sent: new Date(),
51       pub: 1
52     }
53   });
55   it('POST /v1/rooms/:roomId/chatMessages/:chatMessageId/report - own message', function() {
56     return request(app)
57       .post(
58         '/v1/rooms/' + fixture.troupe1.id + '/chatMessages/' + fixture.messageBad3.id + '/report'
59       )
60       .set('x-access-token', fixture.user1.accessToken)
61       .expect(403);
62   });
64   it('POST /v1/rooms/:roomId/chatMessages/:chatMessageId/report - some elses message', function() {
65     return request(app)
66       .post(
67         '/v1/rooms/' + fixture.troupe1.id + '/chatMessages/' + fixture.messageBad2.id + '/report'
68       )
69       .set('x-access-token', fixture.user2.accessToken)
70       .expect(200)
71       .then(function(result) {
72         const body = result.body;
73         assert.strictEqual(body.messageId, fixture.messageBad2.id);
74         assert.strictEqual(body.messageText, fixture.messageBad2.text);
75       });
76   });
78   it('POST /v1/rooms/:roomId/chatMessages/:chatMessageId/report - as admin', function() {
79     return request(app)
80       .post(
81         '/v1/rooms/' + fixture.troupe1.id + '/chatMessages/' + fixture.messageBad2.id + '/report'
82       )
83       .set('x-access-token', fixture.user3.accessToken)
84       .expect(200)
85       .then(function(result) {
86         const body = result.body;
87         assert.strictEqual(body.messageId, fixture.messageBad2.id);
88         assert.strictEqual(body.messageText, fixture.messageBad2.text);
89       });
90   });
91 });