braid/src/test/channelManager.spec.ts
2019-03-22 11:06:51 -04:00

75 lines
2.8 KiB
TypeScript

import ChannelBase from '../channels/channelBase';
import ClientBase from '../clients/clientBase';
import MHSClient from '../clients/sites/mhsClient';
import MHSChannel from '../channels/sites/mhsChannel';
import ChannelManager from '../channelManager';
import ClientManager from '../clientManager';
var expect = require('chai').expect;
var sinon = require('sinon');
var name: string = 'test channel';
var data: any = { 'client': 'test', 'client_type':'site', 'user_id': 125, 'user_type': 'user', 'channel': name }
var WebSocketClient = require('websocket').client;
var wsClient = new WebSocketClient();
var clientManager = new ClientManager();
var channelManager = new ChannelManager();
var client: ClientBase = new ClientBase(data, wsClient, channelManager, clientManager);
describe('ChannelManager', function () {
var channel: ChannelBase;
it('should create a channel', function () {
channel = channelManager.createChannel(data);
expect(channel.id).to.be.equal(name);
});
it('should return existing channel when attempting to create a channel', function () {
channel = channelManager.createChannel(data);
expect(channel.id).to.be.equal(name);
});
it('should return a channel when searching if channel exists', function () {
var exists = channelManager.channelExists(channel.id);
var result = exists ? true : false;
expect(result).to.be.equal(true);
});
it('should not return a channel when serachingif channel exists', function () {
var exists = channelManager.channelExists('no channel');
var result = exists ? true : false;
expect(result).to.be.equal(false);
});
it('should add a client to channel', function () {
var result = channelManager.addClientToChannel(client, channel.id);
expect(result.status).to.be.equal('success');
});
it('should not add a client to channel', function () {
var result = channelManager.addClientToChannel(client, 'no channel');
expect(result.status).to.be.equal('notice');
});
it('should create a channel of type MHSChannel', function () {
var data2 = { 'channel': 'test channel 2', 'client': 'mhs', 'client_type':'site' };
var result = channelManager.createByChannelType(data2);
expect(result.id).to.be.equal('test channel 2');
});
it('should remove client from channel', function () {
var result = channelManager.removeClientFromChannel(client.id , 'test channel');
expect(result).to.be.equal(true);
});
it('should be unable to remove a client that doesn\'t exit from channel', function () {
var result = channelManager.removeClientFromChannel(126 , 'test channel');
expect(result).to.be.equal(false);
});
it('should be unable to remove a client from a channel that doesn\'t exist', function () {
var result = channelManager.removeClientFromChannel(client.id , 'test channel 3');
expect(result).to.be.equal(false);
});
});