Add test for EventDispatcher

This commit is contained in:
Thomas Nordquist
2019-01-21 16:05:59 +01:00
parent 4c438bd00b
commit 221abd8c48

View File

@@ -0,0 +1,43 @@
import 'mocha'
import { EventDispatcher } from '../../../../events'
import { expect } from 'chai'
import { doesNotReject } from 'assert'
describe('EventDispatcher', async () => {
it('should dispatch', async function () {
const dispatcher = new EventDispatcher<string, string>('me')
this.timeout(300)
setTimeout(() => dispatcher.dispatch('hello'), 5)
const response = await new Promise((resolve) => {
dispatcher.subscribe((msg) => {
resolve(msg)
})
})
expect(response).to.eq('hello')
})
it('should unsubscribe', async function () {
const dispatcher = new EventDispatcher<string, string>('me')
this.timeout(300)
let incrementee = 0
const callback = (msg: any) => {
incrementee += 1
}
dispatcher.subscribe(callback)
dispatcher.subscribe(callback)
dispatcher.unsubscribe(callback)
// Should increment to 1
dispatcher.dispatch('hello')
dispatcher.unsubscribe(callback)
// should not cause any increment
dispatcher.dispatch('hello')
expect(incrementee).to.eq(1)
})
})