2
0
mirror of https://github.com/tenrok/vue-native-websocket.git synced 2026-05-27 17:24:05 +03:00
Files
vue-native-websocket/test/unit/specs/Emitter.spec.js
T
Nathan b62cc5a27c Specs (#6)
* wire up specs

* tests + fixes for #1

* travis
2017-07-07 09:27:32 -07:00

42 lines
1.2 KiB
JavaScript

import Vue from 'vue'
// bring in the Emitter class, not the singleton
let EmitterClass = require('exports-loader?Emitter!@/Emitter')
describe ("Emitter.js", () => {
let vm = new Vue()
let Emitter
beforeEach (() => {
Emitter = new EmitterClass()
})
it ('registers an handler', () => {
expect(Emitter.listeners.size).to.equal(0)
Emitter.addListener('[event_type]', (value) => {}, vm)
expect(Emitter.listeners.size).to.equal(1)
})
it ('unregisters a registered handler', () => {
let event_type = 'atype', cb = (value) => {}
should.not.exist(Emitter.listeners.get(event_type))
Emitter.addListener(event_type, cb, vm)
expect(Emitter.listeners.get(event_type).length).to.equal(1)
Emitter.removeListener(event_type, cb, vm)
expect(Emitter.listeners.get(event_type).length).to.equal(0)
})
it ('fires an events', (done) => {
let event_type = 'syn', expected_response = 'ack'
expect(Emitter.listeners.size).to.equal(0)
Emitter.addListener(event_type, (value) => {
expect(value).to.equal(expected_response)
done()
}, vm)
expect(Emitter.listeners.size).to.equal(1)
Emitter.emit(event_type, expected_response)
})
})