UNPKG

2.15 kBJavaScriptView Raw
1'use strict'
2/* eslint-env mocha */
3
4const { expect } = require('chai')
5
6const { cleanup, clientConnect, startService } = require('./testutils')
7
8const { cleanupTimeout, user1, roomName1 } = require('./config')
9
10module.exports = function () {
11 let chatService, socket1, socket2, socket3
12
13 afterEach(function (cb) {
14 this.timeout(cleanupTimeout)
15 cleanup(chatService, [socket1, socket2, socket3], cb)
16 chatService = socket1 = socket2 = socket3 = null
17 })
18
19 it('should return raw error objects', function (done) {
20 chatService = startService({ useRawErrorObjects: true })
21 socket1 = clientConnect(user1)
22 socket1.on('loginConfirmed', () => {
23 socket1.emit('roomGetAccessList', roomName1, 'nolist', function (error) {
24 expect(error.name).equal('ChatServiceError')
25 expect(error.code).equal('noRoom')
26 expect(error.args).length.above(0)
27 expect(error.args[0]).equal('room1')
28 done()
29 })
30 })
31 })
32
33 it('should validate message argument types', function (done) {
34 chatService = startService({ enableRoomsManagement: true })
35 socket1 = clientConnect(user1)
36 socket1.on('loginConfirmed', u => {
37 socket1.emit('roomCreate', null, false, function (error, data) {
38 expect(error).ok
39 expect(data).not.ok
40 done()
41 })
42 })
43 })
44
45 it('should have a message validation method', function (done) {
46 chatService = startService()
47 chatService.checkArguments(
48 'roomGetAccessList', roomName1, 'userlist', function (error) {
49 expect(error).not.ok
50 done()
51 })
52 })
53
54 it('should check for unknown commands', function (done) {
55 chatService = startService()
56 chatService.validator.checkArguments('cmd', function (error) {
57 expect(error).ok
58 done()
59 })
60 })
61
62 it('should validate a message argument count', function (done) {
63 chatService = startService({ enableRoomsManagement: true })
64 socket1 = clientConnect(user1)
65 socket1.on('loginConfirmed', u => {
66 socket1.emit('roomCreate', function (error, data) {
67 expect(error).ok
68 expect(data).not.ok
69 done()
70 })
71 })
72 })
73}