Merge tag '21.36.0' into develop
[gitter.git] / test / request-api-tests / user-orgs-api-tests.js
blobb7e3a23783bc8df8332b69d07558b961315dad90
1 'use strict';
3 process.env.DISABLE_MATRIX_BRIDGE = '1';
4 process.env.DISABLE_API_LISTEN = '1';
6 const assert = require('assert');
7 const fixtureLoader = require('gitter-web-test-utils/lib/test-fixtures');
9 describe('user-orgs #slow', () => {
10   let app;
11   let request;
12   before(function() {
13     if (this._skipFixtureSetup) return;
15     request = require('supertest');
16     app = require('../../server/api');
17   });
19   describe('GitHub', () => {
20     fixtureLoader.ensureIntegrationEnvironment(
21       '#integrationUser1',
22       'GITTER_INTEGRATION_ORG',
23       'GITTER_INTEGRATION_ORG_ID',
24       '#oauthTokens'
25     );
27     const fixture = fixtureLoader.setup({
28       deleteDocuments: {
29         Group: [
30           { 'sd.type': 'GH_ORG', 'sd.linkPath': fixtureLoader.GITTER_INTEGRATION_ORG },
31           { lcUri: fixtureLoader.GITTER_INTEGRATION_COMMUNITY.toLowerCase() }
32         ],
33         Troupe: [
34           { 'sd.type': 'GH_ORG', 'sd.linkPath': fixtureLoader.GITTER_INTEGRATION_ORG },
35           { lcUri: fixtureLoader.GITTER_INTEGRATION_COMMUNITY.toLowerCase() + '/community' }
36         ]
37       },
38       user1: '#integrationUser1'
39     });
41     it('GET /v1/user/:userId/orgs', async () => {
42       const result = await request(app)
43         .get(`/v1/user/${fixture.user1.id}/orgs`)
44         .set('x-access-token', fixture.user1.accessToken)
45         .expect(200);
47       const orgs = result.body;
49       const integrationOrg = orgs.find(org => {
50         return org.id === parseInt(fixtureLoader.GITTER_INTEGRATION_ORG_ID, 10);
51       });
52       const { avatar_url, ...compareOrg } = integrationOrg;
54       assert.deepStrictEqual(compareOrg, {
55         type: 'GH_ORG',
56         id: parseInt(fixtureLoader.GITTER_INTEGRATION_ORG_ID, 10),
57         name: fixtureLoader.GITTER_INTEGRATION_ORG,
58         uri: 'gitter-integration-tests-organisation',
59         absoluteUri: `https://github.com/${fixtureLoader.GITTER_INTEGRATION_ORG}`,
60         room: null,
61         premium: false
62       });
63       assert(avatar_url);
64     });
65   });
67   describe('GitLab', () => {
68     fixtureLoader.ensureIntegrationEnvironment(
69       '#integrationGitlabUser1',
70       'GITLAB_GROUP1_ID',
71       'GITLAB_GROUP1_URI',
72       '#oauthTokens'
73     );
75     const fixture = fixtureLoader.setup({
76       userGitlab1: '#integrationGitlabUser1'
77     });
79     it('GET /v1/user/:userId/orgs', async () => {
80       const result = await request(app)
81         .get(`/v1/user/${fixture.userGitlab1.id}/orgs`)
82         .set('x-access-token', fixture.userGitlab1.accessToken)
83         .expect(200);
85       const orgs = result.body;
87       const integrationOrg = orgs.find(org => {
88         return org.id === parseInt(fixtureLoader.GITLAB_GROUP1_ID, 10);
89       });
90       const { avatar_url, ...compareOrg } = integrationOrg;
92       assert.deepStrictEqual(compareOrg, {
93         type: 'GL_GROUP',
94         id: parseInt(fixtureLoader.GITLAB_GROUP1_ID, 10),
95         name: fixtureLoader.GITLAB_GROUP1_URI,
96         uri: 'gitter-integration-tests-group',
97         absoluteUri: `https://gitlab.com/groups/${fixtureLoader.GITLAB_GROUP1_URI}`
98       });
99       assert(avatar_url);
100     });
101   });