UNPKG

26 kBJavaScriptView Raw
1'use strict'
2/* eslint-env mocha */
3
4const { expect } = require('chai')
5
6const { cleanup, clientConnect,
7 parallel, series, startService } = require('./testutils')
8
9const { cleanupTimeout, user1, user2,
10 roomName1, roomName2 } = require('./config')
11
12module.exports = function () {
13 let chatService, socket1, socket2, socket3
14
15 afterEach(function (cb) {
16 this.timeout(cleanupTimeout)
17 cleanup(chatService, [socket1, socket2, socket3], cb)
18 chatService = socket1 = socket2 = socket3 = null
19 })
20
21 it('should emit echos to a non-joined user\'s socket', function (done) {
22 chatService = startService()
23 chatService.addRoom(roomName1, null, () => {
24 socket1 = clientConnect(user1)
25 socket1.on('loginConfirmed', (u, data) => {
26 socket2 = clientConnect(user1)
27 socket2.on('loginConfirmed', (u, data) => {
28 let sid2 = data.id
29 socket2.emit('roomJoin', roomName1)
30 socket1.on('roomJoinedEcho', (room, id, njoined) => {
31 expect(room).equal(roomName1)
32 expect(id).equal(sid2)
33 expect(njoined).equal(1)
34 socket2.emit('roomLeave', roomName1)
35 socket1.on('roomLeftEcho', (room, id, njoined) => {
36 expect(room).equal(roomName1)
37 expect(id).equal(sid2)
38 expect(njoined).equal(0)
39 done()
40 })
41 })
42 })
43 })
44 })
45 })
46
47 it('should emit echos to a joined user\'s socket', function (done) {
48 chatService = startService()
49 chatService.addRoom(roomName1, null, () => {
50 socket1 = clientConnect(user1)
51 socket1.on('loginConfirmed', (u, data) => {
52 socket1.emit('roomJoin', roomName1, () => {
53 socket2 = clientConnect(user1)
54 socket2.on('loginConfirmed', (u, data) => {
55 let sid2 = data.id
56 socket2.emit('roomJoin', roomName1)
57 socket1.on('roomJoinedEcho', (room, id, njoined) => {
58 expect(room).equal(roomName1)
59 expect(id).equal(sid2)
60 expect(njoined).equal(2)
61 socket2.emit('roomLeave', roomName1)
62 socket1.on('roomLeftEcho', (room, id, njoined) => {
63 expect(room).equal(roomName1)
64 expect(id).equal(sid2)
65 expect(njoined).equal(1)
66 done()
67 })
68 })
69 })
70 })
71 })
72 })
73 })
74
75 it('should emit leave echo on a disconnect', function (done) {
76 let sid1, sid2
77 chatService = startService()
78 chatService.addRoom(roomName1, null, () => parallel([
79 cb => {
80 socket3 = clientConnect(user1)
81 socket3.on('loginConfirmed', () => cb())
82 },
83 cb => {
84 socket1 = clientConnect(user1)
85 socket1.on('loginConfirmed', (u, data) => {
86 sid1 = data.id
87 socket1.emit('roomJoin', roomName1, cb)
88 })
89 },
90 cb => {
91 socket2 = clientConnect(user1)
92 socket2.on('loginConfirmed', (u, data) => {
93 sid2 = data.id
94 socket2.emit('roomJoin', roomName1, cb)
95 })
96 }
97 ], error => {
98 expect(error).not.ok
99 socket2.disconnect()
100 parallel([
101 cb => socket1.once('roomLeftEcho', (room, id, njoined) => {
102 expect(room).equal(roomName1)
103 expect(id).equal(sid2)
104 expect(njoined).equal(1)
105 cb()
106 }),
107 cb => socket3.once('roomLeftEcho', (room, id, njoined) => {
108 expect(room).equal(roomName1)
109 expect(id).equal(sid2)
110 expect(njoined).equal(1)
111 cb()
112 })
113
114 ], () => {
115 socket1.disconnect()
116 socket3.on('roomLeftEcho', (room, id, njoined) => {
117 expect(room).equal(roomName1)
118 expect(id).equal(sid1)
119 expect(njoined).equal(0)
120 done()
121 })
122 })
123 }))
124 })
125
126 it('should remove disconnected users', function (done) {
127 chatService = startService({ enableUserlistUpdates: true })
128 chatService.addRoom(roomName1, null, () => {
129 socket1 = clientConnect(user1)
130 socket1.on('loginConfirmed', () => {
131 socket1.emit('roomJoin', roomName1, () => {
132 socket2 = clientConnect(user2)
133 socket2.on('loginConfirmed', () => {
134 socket2.emit('roomJoin', roomName1, () => {
135 socket2.disconnect()
136 socket1.on('roomUserLeft', (r, u) => {
137 expect(r).equal(roomName1)
138 expect(u).equal(user2)
139 done()
140 })
141 })
142 })
143 })
144 })
145 })
146 })
147
148 it('should remove disconnected users', function (done) {
149 this.timeout(4000)
150 this.slow(2000)
151 chatService = startService({ enableUserlistUpdates: true })
152 chatService.addRoom(roomName1, null, () => {
153 socket1 = clientConnect(user1)
154 socket1.on('loginConfirmed', () => {
155 socket1.emit('roomJoin', roomName1, () => {
156 socket2 = clientConnect(user2)
157 socket2.on('loginConfirmed', () => {
158 socket2.emit('roomLeave', roomName1)
159 socket1.on('roomLeftEcho', () => done(new Error('Wrong echo')))
160 setTimeout(done, 1000)
161 })
162 })
163 })
164 })
165 })
166
167 it('should update userlist on join and leave operations', function (done) {
168 chatService = startService()
169 chatService.addRoom(roomName1, null, () => parallel([
170 cb => {
171 socket1 = clientConnect(user1)
172 socket1.on('loginConfirmed',
173 () => socket1.emit('roomJoin', roomName1, cb))
174 },
175 cb => {
176 socket2 = clientConnect(user2)
177 socket2.on('loginConfirmed',
178 () => socket2.emit('roomJoin', roomName1, cb))
179 }
180 ], error => {
181 expect(error).not.ok
182 socket1.emit(
183 'roomGetAccessList', roomName1, 'userlist', (error, data) => {
184 expect(error).not.ok
185 expect(data).lengthOf(2)
186 expect(data).include(user1)
187 expect(data).include(user2)
188 socket2.emit('roomLeave', roomName1, (error, data) => {
189 expect(error).not.ok
190 socket1.emit(
191 'roomGetAccessList', roomName1, 'userlist', (error, data) => {
192 expect(error).not.ok
193 expect(data).lengthOf(1)
194 expect(data).include(user1)
195 expect(data).not.include(user2)
196 done()
197 })
198 })
199 })
200 }))
201 })
202
203 it('should broadcast join and leave room messages', function (done) {
204 chatService = startService({ enableUserlistUpdates: true })
205 chatService.addRoom(roomName1, null, () => {
206 socket1 = clientConnect(user1)
207 socket1.on('loginConfirmed', () => {
208 socket1.emit('roomJoin', roomName1, (error, njoined) => {
209 expect(error).not.ok
210 expect(njoined).equal(1)
211 socket2 = clientConnect(user2)
212 socket2.on('loginConfirmed', () => {
213 socket2.emit('roomJoin', roomName1)
214 socket1.on('roomUserJoined', (room, user) => {
215 expect(room).equal(roomName1)
216 expect(user).equal(user2)
217 socket2.emit('roomLeave', roomName1)
218 socket1.on('roomUserLeft', (room, user) => {
219 expect(room).equal(roomName1)
220 expect(user).equal(user2)
221 done()
222 })
223 })
224 })
225 })
226 })
227 })
228 })
229
230 it('should update userlist on a disconnect', function (done) {
231 chatService = startService({ enableUserlistUpdates: true })
232 chatService.addRoom(roomName1, null, () => parallel([
233 cb => {
234 socket1 = clientConnect(user1)
235 socket1.on('loginConfirmed',
236 () => socket1.emit('roomJoin', roomName1, cb))
237 },
238 cb => {
239 socket2 = clientConnect(user2)
240 socket2.on('loginConfirmed',
241 () => socket2.emit('roomJoin', roomName1, cb))
242 }
243 ], error => {
244 expect(error).not.ok
245 socket1.emit(
246 'roomGetAccessList', roomName1, 'userlist', (error, data) => {
247 expect(error).not.ok
248 expect(data).lengthOf(2)
249 expect(data).include(user1)
250 expect(data).include(user2)
251 socket2.disconnect()
252 socket1.once('roomUserLeft', () => {
253 socket1.emit(
254 'roomGetAccessList', roomName1, 'userlist', (error, data) => {
255 expect(error).not.ok
256 expect(data).lengthOf(1)
257 expect(data).include(user1)
258 expect(data).not.include(user2)
259 done()
260 })
261 })
262 })
263 }))
264 })
265
266 it('should store and send a room history', function (done) {
267 let txt = 'Test message.'
268 let message = { textMessage: txt }
269 chatService = startService()
270 chatService.addRoom(roomName1, null, () => {
271 socket1 = clientConnect(user1)
272 socket1.on('loginConfirmed', () => {
273 socket1.emit('roomJoin', roomName1, () => {
274 socket1.emit('roomMessage', roomName1, message, (error, data) => {
275 expect(error).not.ok
276 expect(data).a('Number')
277 socket1.emit('roomRecentHistory', roomName1, (error, data) => {
278 expect(error).not.ok
279 expect(data).length(1)
280 let props = ['textMessage', 'author', 'timestamp', 'id']
281 expect(data[0]).include.keys(...props)
282 expect(data[0].textMessage).equal(txt)
283 expect(data[0].author).equal(user1)
284 expect(data[0].timestamp).a('Number')
285 expect(data[0].id).equal(1)
286 done()
287 })
288 })
289 })
290 })
291 })
292 })
293
294 it('should send room messages to all joined users', function (done) {
295 let txt = 'Test message.'
296 let message = { textMessage: txt }
297 chatService = startService()
298 chatService.addRoom(roomName1, null, () => parallel([
299 cb => {
300 socket1 = clientConnect(user1)
301 socket1.on('loginConfirmed',
302 () => socket1.emit('roomJoin', roomName1, cb))
303 },
304 cb => {
305 socket2 = clientConnect(user2)
306 socket2.on('loginConfirmed',
307 () => socket2.emit('roomJoin', roomName1, cb))
308 }
309 ], error => {
310 expect(error).not.ok
311 parallel([
312 cb => socket1.emit('roomMessage', roomName1, message, cb),
313 cb => socket1.on('roomMessage', (room, msg) => {
314 expect(room).equal(roomName1)
315 expect(msg.author).equal(user1)
316 expect(msg.textMessage).equal(txt)
317 expect(msg).ownProperty('timestamp')
318 expect(msg).ownProperty('id')
319 cb()
320 }),
321 cb => socket2.on('roomMessage', (room, msg) => {
322 expect(room).equal(roomName1)
323 expect(msg.author).equal(user1)
324 expect(msg.textMessage).equal(txt)
325 expect(msg).ownProperty('timestamp')
326 expect(msg).ownProperty('id')
327 cb()
328 })
329 ], done)
330 }))
331 })
332
333 it('should drop a history if the limit is zero', function (done) {
334 let txt = 'Test message.'
335 let message = { textMessage: txt }
336 chatService = startService({ historyMaxSize: 0 })
337 chatService.addRoom(roomName1, null, () => {
338 socket1 = clientConnect(user1)
339 socket1.on('loginConfirmed', () => {
340 socket1.emit('roomJoin', roomName1, () => {
341 socket1.emit('roomMessage', roomName1, message, (error, id) => {
342 expect(error).not.ok
343 expect(id).equal(1)
344 socket1.emit('roomRecentHistory', roomName1, (error, data) => {
345 expect(error).not.ok
346 expect(data).empty
347 done()
348 })
349 })
350 })
351 })
352 })
353 })
354
355 it('should not send a history if the limit is zero', function (done) {
356 let txt = 'Test message.'
357 let message = { textMessage: txt }
358 chatService = startService({ historyMaxGetMessages: 0 })
359 chatService.addRoom(roomName1, null, () => {
360 socket1 = clientConnect(user1)
361 socket1.on('loginConfirmed', () => {
362 socket1.emit('roomJoin', roomName1, () => {
363 socket1.emit('roomMessage', roomName1, message, () => {
364 socket1.emit('roomRecentHistory', roomName1, (error, data) => {
365 expect(error).not.ok
366 expect(data).empty
367 socket1.emit(
368 'roomHistoryGet', roomName1, 0, 10, (error, data) => {
369 expect(error).not.ok
370 expect(data).empty
371 done()
372 })
373 })
374 })
375 })
376 })
377 })
378 })
379
380 it('should send a room history maximum size', function (done) {
381 let sz = 1000
382 chatService = startService({ historyMaxSize: sz })
383 chatService.addRoom(roomName1, null, () => {
384 socket1 = clientConnect(user1)
385 socket1.on('loginConfirmed', () => {
386 socket1.emit('roomJoin', roomName1, () => {
387 socket1.emit('roomHistoryInfo', roomName1, (error, data) => {
388 expect(error).not.ok
389 expect(data.historyMaxSize).equal(sz)
390 done()
391 })
392 })
393 })
394 })
395 })
396
397 it('should truncate a long history', function (done) {
398 let txt1 = 'Test message 1.'
399 let message1 = { textMessage: txt1 }
400 let txt2 = 'Test message 2.'
401 let message2 = { textMessage: txt2 }
402 chatService = startService({ historyMaxSize: 1 })
403 chatService.addRoom(roomName1, null, () => {
404 socket1 = clientConnect(user1)
405 socket1.on('loginConfirmed', () => {
406 socket1.emit('roomJoin', roomName1, () => {
407 socket1.emit('roomMessage', roomName1, message1, () => {
408 socket1.emit('roomMessage', roomName1, message2, () => {
409 socket1.emit('roomRecentHistory', roomName1, (error, data) => {
410 expect(error).not.ok
411 expect(data).length(1)
412 let props = ['textMessage', 'author', 'timestamp', 'id']
413 expect(data[0]).include.keys(...props)
414 expect(data[0].textMessage).equal(txt2)
415 expect(data[0].author).equal(user1)
416 expect(data[0].timestamp).a('Number')
417 expect(data[0].id).equal(2)
418 done()
419 })
420 })
421 })
422 })
423 })
424 })
425 })
426
427 it('should support a history synchronisation', function (done) {
428 let txt = 'Test message.'
429 let message = { textMessage: txt }
430 chatService = startService()
431 chatService.addRoom(roomName1, null, () => {
432 socket1 = clientConnect(user1)
433 series([
434 cb => socket1.on('loginConfirmed',
435 () => socket1.emit('roomJoin', roomName1, cb)),
436 cb => socket1.emit('roomMessage', roomName1, message, cb),
437 cb => socket1.emit('roomMessage', roomName1, message, cb)
438 ], error => {
439 expect(error).not.ok
440 parallel([
441 cb =>
442 socket1.emit('roomHistoryGet', roomName1, 0, 10, (error, data) => {
443 expect(error).not.ok
444 expect(data).lengthOf(2)
445 let props = ['textMessage', 'author', 'timestamp', 'id']
446 expect(data[0]).include.keys(...props)
447 expect(data[0].textMessage).equal(txt)
448 expect(data[0].author).equal(user1)
449 expect(data[0].timestamp).a('Number')
450 expect(data[0].id).equal(2)
451 expect(data[1].id).equal(1)
452 cb()
453 }),
454 cb =>
455 socket1.emit('roomHistoryGet', roomName1, 1, 10, (error, data) => {
456 expect(error).not.ok
457 expect(data).lengthOf(1)
458 expect(data[0].id).equal(2)
459 cb()
460 }),
461 cb =>
462 socket1.emit('roomHistoryGet', roomName1, 2, 10, (error, data) => {
463 expect(error).not.ok
464 expect(data).empty
465 cb()
466 })
467 ], done)
468 })
469 })
470 })
471
472 it('should sync a history with respect to the limit', function (done) {
473 let txt = 'Test message.'
474 let message = { textMessage: txt }
475 chatService = startService({ historyMaxGetMessages: 2 })
476 chatService.addRoom(roomName1, null, () => {
477 socket1 = clientConnect(user1)
478 series([
479 cb => socket1.on('loginConfirmed',
480 () => socket1.emit('roomJoin', roomName1, cb)),
481 cb => socket1.emit('roomMessage', roomName1, message, cb),
482 cb => socket1.emit('roomMessage', roomName1, message, cb),
483 cb => socket1.emit('roomMessage', roomName1, message, cb)
484 ], error => {
485 expect(error).not.ok
486 parallel([
487 cb =>
488 socket1.emit('roomHistoryGet', roomName1, 0, 10, (error, data) => {
489 expect(error).not.ok
490 expect(data).lengthOf(2)
491 expect(data[0].id).equal(2)
492 expect(data[1].id).equal(1)
493 cb()
494 }),
495 cb =>
496 socket1.emit('roomHistoryGet', roomName1, 1, 10, (error, data) => {
497 expect(error).not.ok
498 expect(data).lengthOf(2)
499 expect(data[0].id).equal(3)
500 expect(data[1].id).equal(2)
501 cb()
502 }),
503 cb =>
504 socket1.emit('roomHistoryGet', roomName1, 2, 10, (error, data) => {
505 expect(error).not.ok
506 expect(data).lengthOf(1)
507 expect(data[0].id).equal(3)
508 cb()
509 }),
510 cb =>
511 socket1.emit('roomHistoryGet', roomName1, 3, 10, (error, data) => {
512 expect(error).not.ok
513 expect(data).empty
514 cb()
515 })
516 ], done)
517 })
518 })
519 })
520
521 it('should sync a history with respect to a history size', function (done) {
522 let txt = 'Test message.'
523 let message = { textMessage: txt }
524 chatService = startService({ historyMaxSize: 2 })
525 chatService.addRoom(roomName1, null, () => {
526 socket1 = clientConnect(user1)
527 series([
528 cb => socket1.on('loginConfirmed',
529 () => socket1.emit('roomJoin', roomName1, cb)),
530 cb => socket1.emit('roomMessage', roomName1, message, cb),
531 cb => socket1.emit('roomMessage', roomName1, message, cb),
532 cb => socket1.emit('roomMessage', roomName1, message, cb)
533 ], error => {
534 expect(error).not.ok
535 parallel([
536 cb =>
537 socket1.emit('roomHistoryGet', roomName1, 0, 10, (error, data) => {
538 expect(error).not.ok
539 expect(data).lengthOf(2)
540 expect(data[0].id).equal(3)
541 cb()
542 }),
543 cb =>
544 socket1.emit('roomHistoryGet', roomName1, 1, 10, (error, data) => {
545 expect(error).not.ok
546 expect(data).lengthOf(2)
547 expect(data[0].id).equal(3)
548 cb()
549 }),
550 cb =>
551 socket1.emit('roomHistoryGet', roomName1, 2, 10, (error, data) => {
552 expect(error).not.ok
553 expect(data).lengthOf(1)
554 expect(data[0].id).equal(3)
555 cb()
556 }),
557 cb =>
558 socket1.emit('roomHistoryGet', roomName1, 3, 10, (error, data) => {
559 expect(error).not.ok
560 expect(data).empty
561 cb()
562 })
563 ], done)
564 })
565 })
566 })
567
568 it('should trim history on size changes', function (done) {
569 let txt = 'Test message.'
570 let message = { textMessage: txt }
571 chatService = startService({ historyMaxSize: 2 })
572 socket1 = clientConnect(user1)
573 chatService.addRoom(roomName1, null, () => {
574 series([
575 cb => socket1.on('loginConfirmed',
576 () => socket1.emit('roomJoin', roomName1, cb)),
577 cb => socket1.emit('roomMessage', roomName1, message, cb),
578 cb => socket1.emit('roomMessage', roomName1, message, cb)
579 ], error => {
580 expect(error).not.ok
581 chatService.changeRoomHistoryMaxSize(roomName1, 1, (error, data) => {
582 expect(error).not.ok
583 parallel([
584 cb =>
585 socket1.emit('roomHistoryGet', roomName1, 0, 9, (error, data) => {
586 expect(error).not.ok
587 expect(data).an.array
588 expect(data).lengthOf(1)
589 expect(data[0].id).equal(2)
590 cb()
591 }),
592 cb =>
593 socket1.emit('roomHistoryInfo', roomName1, (error, data) => {
594 expect(error).not.ok
595 expect(data).an.object
596 expect(data.historySize).equal(1)
597 expect(data.historyMaxSize).equal(1)
598 cb()
599 })
600 ], done)
601 })
602 })
603 })
604 })
605
606 it('should send and update a room sync info', function (done) {
607 let txt = 'Test message.'
608 let message = { textMessage: txt }
609 chatService = startService()
610 chatService.addRoom(roomName1, null, () => {
611 socket1 = clientConnect(user1)
612 socket1.on('loginConfirmed', () => {
613 socket1.emit('roomJoin', roomName1, () => {
614 socket1.emit('roomHistoryInfo', roomName1, (error, data) => {
615 expect(error).not.ok
616 expect(data).ownProperty('historyMaxGetMessages')
617 expect(data).ownProperty('historyMaxSize')
618 expect(data).ownProperty('historySize')
619 expect(data).ownProperty('lastMessageId')
620 expect(data.lastMessageId).equal(0)
621 expect(data.historySize).equal(0)
622 socket1.emit('roomMessage', roomName1, message, () => {
623 socket1.emit('roomHistoryInfo', roomName1, (error, data) => {
624 expect(error).not.ok
625 expect(data.lastMessageId).equal(1)
626 expect(data.historySize).equal(1)
627 done()
628 })
629 })
630 })
631 })
632 })
633 })
634 })
635
636 it('should get and update an user seen info', function (done) {
637 chatService = startService()
638 chatService.addRoom(roomName1, null, () => {
639 let ts = new Date().getTime()
640 let tsmax = ts + 2000
641 parallel([
642 cb => {
643 socket1 = clientConnect(user1)
644 socket1.on('loginConfirmed',
645 () => socket1.emit('roomJoin', roomName1, cb))
646 },
647 cb => {
648 socket2 = clientConnect(user2)
649 socket2.on('loginConfirmed',
650 () => socket2.emit('roomJoin', roomName1, cb))
651 }
652 ], error => {
653 expect(error).not.ok
654 socket1.emit('roomUserSeen', roomName1, user2, (error, info1) => {
655 expect(error).not.ok
656 expect(info1).an('object')
657 expect(info1.joined).true
658 expect(info1.timestamp).a('Number')
659 expect(info1.timestamp).within(ts, tsmax)
660 socket2.emit('roomLeave', roomName1, () => {
661 socket1.emit('roomUserSeen', roomName1, user2, (error, info2) => {
662 expect(error).not.ok
663 expect(info2).an('object')
664 expect(info2.joined).false
665 expect(info2.timestamp).a('Number')
666 expect(info2.timestamp).within(ts, tsmax)
667 expect(info2.timestamp).least(info1.timestamp)
668 done()
669 })
670 })
671 })
672 })
673 })
674 })
675
676 it('should send an empty seen info for unseen users', function (done) {
677 chatService = startService()
678 chatService.addRoom(roomName1, null, () => {
679 socket1 = clientConnect(user1)
680 socket1.on('loginConfirmed', () => {
681 socket1.emit('roomJoin', roomName1, () => {
682 socket1.emit('roomUserSeen', roomName1, user2, (error, info) => {
683 expect(error).not.ok
684 expect(info).an('object')
685 expect(info.joined).false
686 expect(info.timestamp).null
687 done()
688 })
689 })
690 })
691 })
692 })
693
694 it('should include info in users\' sockets lists', function (done) {
695 chatService = startService()
696 let { sid1, sid2, sid3 } = {}
697 chatService.addRoom(roomName1, null, () => {
698 chatService.addRoom(roomName2, null, () => {
699 parallel([
700 cb => {
701 socket1 = clientConnect(user1)
702 socket1.on('loginConfirmed', (u, data) => {
703 sid1 = data.id
704 socket1.emit('roomJoin', roomName1,
705 () => socket1.emit('roomJoin', roomName2, cb))
706 })
707 },
708 cb => {
709 socket2 = clientConnect(user1)
710 socket2.on('loginConfirmed', (u, data) => {
711 sid2 = data.id
712 socket2.emit('roomJoin', roomName1, cb)
713 })
714 },
715 cb => {
716 socket3 = clientConnect(user1)
717 socket3.on('loginConfirmed', (u, data) => {
718 sid3 = data.id
719 cb()
720 })
721 }
722 ], error => {
723 expect(error).not.ok
724 socket2.emit('listOwnSockets', (error, data) => {
725 expect(error).not.ok
726 expect(data[sid1]).lengthOf(2)
727 expect(data[sid2]).lengthOf(1)
728 expect(data[sid3]).lengthOf(0)
729 expect(data[sid1]).include.members([roomName1, roomName2])
730 expect(data[sid1]).include(roomName1)
731 done()
732 })
733 })
734 })
735 })
736 })
737
738 it('should send notifications configuration info', function (done) {
739 chatService = startService()
740 let config = {enableAccessListsUpdates: false, enableUserlistUpdates: true}
741 chatService.addRoom(roomName1, config, () => {
742 socket1 = clientConnect(user1)
743 socket1.on('loginConfirmed', () => {
744 socket1.emit('roomJoin', roomName1, () => {
745 socket1.emit('roomNotificationsInfo', roomName1, (error, data) => {
746 expect(error).not.ok
747 expect(data).an.object
748 expect(data.enableAccessListsUpdates).false
749 expect(data.enableUserlistUpdates).true
750 done()
751 })
752 })
753 })
754 })
755 })
756}