UNPKG

friends-irc

Version:

Connects IRC and Friends channels by sending messages back and forth.

45 lines (39 loc) 1.45 kB
/*eslint-env mocha */ var chai = require('chai') var rewire = require('rewire') var irc = require('irc') var sinon = require('sinon') var ConfigurationError = require('../lib/errors').ConfigurationError var validateChannelMapping = require('../lib/validators').validateChannelMapping var Bot = rewire('../lib/bot') var config = require('./fixtures/single-test-config.json') var SwarmStub = require('./stubs/swarm-stub') var ClientStub = require('./stubs/irc-client-stub') chai.should() describe('Channel Mapping', function () { before(function () { irc.Client = ClientStub Bot.__set__('createSwarm', SwarmStub) Bot.__set__('subleveldown', sinon.stub()) }) it('should fail when not given proper JSON', function () { var wrongMapping = 'not json' function wrap () { validateChannelMapping(wrongMapping) } (wrap).should.throw(ConfigurationError, /Invalid channel mapping given/) }) it('should not fail if given a proper channel list as JSON', function () { var correctMapping = { '#channel': '#otherchannel' } function wrap () { validateChannelMapping(correctMapping) } (wrap).should.not.throw() }) it('should clear channel keys from the mapping', function () { var bot = new Bot(sinon.stub(), config) bot.channelMapping['swarm'].should.equal('#irc') bot.invertedMapping['#irc'].should.equal('swarm') bot.channels[0].should.equal('#irc channelKey') }) })