Explain the query is trying to do
[gitter.git] / test / request-web-tests / export / user-oauth-access-tokens-export-tests.js
blobc6980870d2e7810122c1771223b14074f6f522c9
1 'use strict';
3 process.env.DISABLE_MATRIX_BRIDGE = '1';
4 process.env.DISABLE_API_LISTEN = '1';
5 process.env.DISABLE_API_WEB_LISTEN = '1';
6 process.env.TEST_EXPORT_RATE_LIMIT = 100;
8 const fixtureLoader = require('gitter-web-test-utils/lib/test-fixtures');
9 const assert = require('assert');
10 const request = require('supertest');
12 const app = require('../../../server/web');
14 describe('user-oauth-access-tokens-export-api', function() {
15   fixtureLoader.ensureIntegrationEnvironment('#oauthTokens');
17   before(function() {
18     if (this._skipFixtureSetup) return;
19   });
21   var fixture = fixtureLoader.setup({
22     user1: {
23       accessToken: 'web-internal'
24     },
25     userNoExport1: {
26       accessToken: 'web-internal'
27     },
28     oAuthClient1: {},
29     oAuthAccessToken1: { user: 'user1', client: 'oAuthClient1' },
30     oAuthClient2: {},
31     oAuthAccessToken2: { user: 'user1', client: 'oAuthClient2' },
32     oAuthClientNoExport1: {},
33     oAuthAccessTokenNoExport1: { user: 'userNoExport1', client: 'oAuthClientNoExport1' }
34   });
36   it('GET /api_web/export/user/:user_id/oauth-access-tokens.ndjson as same user gets data', async () => {
37     return request(app)
38       .get(`/api_web/export/user/${fixture.user1.id}/oauth-access-tokens.ndjson`)
39       .set('Accept', 'application/x-ndjson,application/json')
40       .set('Authorization', `Bearer ${fixture.user1.accessToken}`)
41       .expect(200)
42       .then(function(result) {
43         assert.strictEqual(
44           result.text.split('\n').length,
45           4,
46           // 2 + 1 because we defined 2 access tokens explicitely in the fixtures and the other one from the `accessToken: 'web-internal'`
47           'includes 2 + 1 OAuth access tokens (extra newline at the end)'
48         );
49         assert(result.text.includes(fixture.oAuthAccessToken1.id), 'includes oAuthAccessToken1');
50         assert(result.text.includes(fixture.oAuthAccessToken2.id), 'includes oAuthAccessToken2');
51         assert(
52           !result.text.includes(fixture.oAuthAccessTokenNoExport1.id),
53           'does not include oAuthAccessTokenNoExport1'
54         );
55       });
56   });
57 });