UNPKG

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