2
0
mirror of https://github.com/tenrok/vue-native-websocket.git synced 2026-06-09 02:52:25 +03:00

fixed minor bags

This commit is contained in:
Viktor Shcheglov
2018-01-08 20:17:34 +03:00
parent 3551355f2b
commit a3b33dd5f3
5 changed files with 53 additions and 6 deletions
+48
View File
@@ -130,4 +130,52 @@ describe('Observer.js', () => {
mockServer.stop(done)
}, 100)
})
describe('reconnection feature', () => {
let observer, mockServer, vm, mockStore
let wsUrl = 'ws://localhost:8080'
beforeEach(() => {
mockServer = new Server(wsUrl)
mockServer.on('connection', ws => ws.send('hi'))
Vue.use(VueNativeSock, wsUrl)
vm = new Vue()
mockStore = sinon.mock({ commit: () => {} })
observer = new Observer(wsUrl, {
store: mockStore.object,
reconnection: true,
reconnectionAttempts: 2,
WebSocket: new WebSocket(wsUrl),
})
})
it('calls #reconnect() method', (done) => {
sinon.spy(observer, 'reconnect');
mockServer.close()
expect(observer.reconnect).to.called
mockServer.stop(done)
})
it('fires SOCKET_RECONNECT event', (done) => {
sinon.spy(observer, 'passToStore');
const clock = sinon.useFakeTimers()
mockServer.close()
clock.tick(1500);
expect(observer.passToStore).to.have.been.calledWith('SOCKET_RECONNECT')
mockServer.stop(done)
})
it('fires SOCKET_RECONNECT_ERROR event, after all attemps', (done) => {
sinon.spy(observer, 'passToStore');
observer.reconnectionCount = 2
observer.reconnectionAttempts = 1
mockServer.close()
expect(observer.passToStore).to.have.been.calledWith('SOCKET_RECONNECT_ERROR')
mockServer.stop(done)
})
})
})