Merge branch 'hotfix/21.56.9' into master
[gitter.git] / modules / rooms / test / troupe-service-test.js
blob0a31875f5dafdd726da3efa086c9d5ed4041211e
1 'use strict';
3 var fixtureLoader = require('gitter-web-test-utils/lib/test-fixtures');
4 var assert = require('assert');
5 var mongoUtils = require('gitter-web-persistence-utils/lib/mongo-utils');
6 var troupeService = require('../lib/troupe-service');
8 describe('troupe-service', function() {
9   var fixture = fixtureLoader.setup({
10     user1: {},
11     user2: {},
12     troupe1: {
13       users: ['user1', 'user2']
14     },
15     troupe2: {}
16   });
18   describe('#findByIdLeanWithMembership', function() {
19     it('should find a room which exists and the user has access', function(done) {
20       troupeService
21         .findByIdLeanWithMembership(fixture.troupe1.id, fixture.user1.id)
22         .spread(function(room, access) {
23           assert.strictEqual(room.id, fixture.troupe1.id);
24           assert.strictEqual(access, true);
25         })
26         .nodeify(done);
27     });
29     it('should find a room which exists and the does not have access', function(done) {
30       troupeService
31         .findByIdLeanWithMembership(fixture.troupe2.id, fixture.user1.id)
32         .spread(function(room, access) {
33           assert(room);
34           assert.strictEqual(room.id, fixture.troupe2.id);
35           assert.strictEqual(access, false);
36         })
37         .nodeify(done);
38     });
40     it('should not find a room which does not exist, for a user', function(done) {
41       troupeService
42         .findByIdLeanWithMembership(mongoUtils.getNewObjectIdString(), fixture.user1.id)
43         .spread(function(room, access) {
44           assert(!room);
45           assert(!access);
46         })
47         .nodeify(done);
48     });
50     it('should find a room which exists and for anon', function(done) {
51       troupeService
52         .findByIdLeanWithMembership(fixture.troupe2.id, null)
53         .spread(function(room, access) {
54           assert(room);
55           assert(!access);
56         })
57         .nodeify(done);
58     });
60     it('should not find a room which does not exist for anon', function(done) {
61       troupeService
62         .findByIdLeanWithMembership(mongoUtils.getNewObjectIdString(), null)
63         .spread(function(room, access) {
64           assert(!room);
65           assert(!access);
66         })
67         .nodeify(done);
68     });
69   });
70 });