Merge branch 'hotfix/21.56.9' into master
[gitter.git] / modules / rooms / test / troupe-uri-mapper-test.js
blobc0ac94dd431a391cb15b27fce946866a8df9f539
1 /*jslint node:true, unused:true*/
2 /*global describe:true, it:true */
3 'use strict';
5 var assert = require('assert');
6 var fixtureLoader = require('gitter-web-test-utils/lib/test-fixtures');
8 var troupeUriMapper = require('../lib/troupe-uri-mapper');
10 describe('troupe-uri-mapper', function() {
11   describe('#findInitialRoomUrlForUser', function() {
12     var fixture = fixtureLoader.setup({
13       user1: {},
14       user2: {},
15       userNoTroupes: {},
16       troupe1: { users: ['user1'] },
17       troupeOneToOne: { oneToOne: true, users: ['user1', 'user2'] }
18     });
20     it('#01 should return null when a user has no troupes', function() {
21       return troupeUriMapper
22         .getUrlOfFirstAccessibleRoom([fixture.userNoTroupes.id], fixture.user1.id)
23         .then(function(url) {
24           assert(!url);
25         });
26     });
28     it('#02 should return the first room that allows access', function() {
29       return troupeUriMapper
30         .getUrlOfFirstAccessibleRoom(
31           [fixture.userNoTroupes.id, fixture.troupe1.id],
32           fixture.user1.id
33         )
34         .then(function(url) {
35           assert.strictEqual(url, '/' + fixture.troupe1.uri);
36         });
37     });
39     it('#03 should return the one to one rooms', function() {
40       return troupeUriMapper
41         .getUrlOfFirstAccessibleRoom(
42           [fixture.userNoTroupes.id, fixture.troupeOneToOne.id, fixture.troupe1.id],
43           fixture.user1.id
44         )
45         .then(function(url) {
46           assert.strictEqual(url, '/' + fixture.user2.username);
47         });
48     });
50     it('#04 should return the other user in a one-to-one room', function() {
51       return troupeUriMapper
52         .getUrlOfFirstAccessibleRoom(
53           [fixture.userNoTroupes.id, fixture.troupeOneToOne.id],
54           fixture.user2.id
55         )
56         .then(function(url) {
57           assert.strictEqual(url, '/' + fixture.user1.username);
58         });
59     });
60   });
61 });