UNPKG

halfcab

Version:

A simple universal JavaScript framework focused on making use of es2015 template strings to build components.

108 lines (85 loc) 2.33 kB
import chai from 'chai' import dirtyChai from 'dirty-chai' import sinon from 'sinon' import sinonChai from 'sinon-chai' import eventEmitter from './index' import jsdomGlobal from 'jsdom-global' const {expect} = chai chai.use(dirtyChai) chai.use(sinonChai) let jsdom = jsdomGlobal() let mocks = { emit: sinon.stub(), on: sinon.stub(), once: sinon.stub(), off: sinon.stub() } let ee = () => { return mocks } let geb = new eventEmitter({ee}) describe('eventEmitter', function () { before(function () { return new Promise(resolve => { resolve() }) }) describe('client', function () { it('calls broadcast correctly', (done) => { geb.broadcast('some event', {}) expect(mocks.emit).to.have.been.called() mocks.emit.reset() done() }) it('calls on correctly', (done) => { geb.on('some event', () => {}) expect(mocks.on).to.have.been.called() mocks.on.reset() done() }) it('calls once correctly', (done) => { geb.once('some event', () => {}) expect(mocks.once).to.have.been.called() mocks.once.reset() done() }) it('calls off correctly', (done) => { geb.off('some event', () => {}) expect(mocks.off).to.have.been.called() mocks.off.reset() done() }) }) describe('server', () => { before(async () => { jsdom() }) return new Promise(resolve => { it('calls a noop for broadcast', () => { //jsdom() var emitter = new eventEmitter({ee}) emitter.broadcast('some new event') expect(mocks.emit).not.to.have.been.called() }) it('calls a noop for on', () => { //jsdom() var emitter = new eventEmitter({ee}) emitter.on('some new event', () => {}) expect(mocks.on).not.to.have.been.called() }) it('calls a noop for broadcast', () => { //jsdom() var emitter = new eventEmitter({ee}) emitter.broadcast('some new event') expect(mocks.emit).not.to.have.been.called() }) it('calls a noop for broadcast', () => { //jsdom() var emitter = new eventEmitter({ee}) emitter.broadcast('some new event') expect(mocks.emit).not.to.have.been.called() }) resolve() }) }) })