import ChannelBase from '../channels/channelBase'; import ClientBase from '../clients/clientBase'; import ClientManager from '../clientManager'; import ChannelManager from '../channelManager'; var exec = require('child_process').exec; var expect = require('chai').expect; var sinon = require('sinon'); var WebSocketClient = require('websocket').client; var app = require('../config/app'); var name: string = 'test channel'; var wsClient = new WebSocketClient(); var channel: ChannelBase; var clientManager = new ClientManager(); var channelManager = new ChannelManager(); var data: any = { 'channel_type': 'private', 'client_type':'private', 'user_id': 125, 'user_roles': ['broadcaster', 'receiver'], 'channel': name } var client: ClientBase = new ClientBase(data, wsClient, channelManager, clientManager); describe('ChannelBase', function () { it('should create a class of ChannelBase', function () { channel = new ChannelBase(name); expect(channel.id).to.be.equal(name); }); it('should add a client to channel', function () { var result: any = channel.addClient(client); expect(result.status).to.be.equal('success'); }); it('should find a client when trying to add said client to channel', function () { var result: any = channel.addClient(client); expect(result.status).to.be.equal('notice'); }); it('should find a client', function () { var exist = channel.clientExists(client.id); var result = exist ? true : false; expect(result).to.be.equal(true); }); it('should not broadcast a message to self', function () { var result = channel.broadcastMessage(client, 'test message'); expect(result.status).to.be.equal('success'); }); it('should be able to remove client from channel', function () { var result = channel.removeClient(client.id); expect(result).to.be.equal(true); }); it('should not be able to remove client that doesnn\'t exist from channel', function () { var result = channel.removeClient(126); expect(result).to.be.equal(false); }); });