mirror of
https://github.com/tenrok/vue-native-websocket.git
synced 2026-06-22 02:50:35 +03:00
@@ -0,0 +1,77 @@
|
||||
import Vue from 'vue'
|
||||
import Emitter from '@/Emitter'
|
||||
import Observer from '@/Observer'
|
||||
|
||||
import { Server, WebSocket } from 'mock-socket'
|
||||
|
||||
describe ("Observer.js", () => {
|
||||
let observer, mockServer
|
||||
|
||||
let wsUrl = 'ws://localhost:8080'
|
||||
|
||||
it ('fires onopen event', (done) => {
|
||||
mockServer = new Server(wsUrl)
|
||||
mockServer.on('connection', ws => {
|
||||
ws.send('hi')
|
||||
})
|
||||
Vue.use(VueNativeSock, wsUrl)
|
||||
let vm = new Vue()
|
||||
observer = new Observer(wsUrl)
|
||||
Emitter.addListener('onopen', (data) => {
|
||||
expect(data.type).to.equal('open')
|
||||
mockServer.stop(done)
|
||||
}, vm)
|
||||
})
|
||||
|
||||
// TODO: DRY
|
||||
it ('passes a json event to the provided vuex store', (done) => {
|
||||
let expectedMsg = { mutation: 'setName', value: 'steve' }
|
||||
let mockStore = sinon.mock({ commit: () => {} })
|
||||
mockStore.expects('commit').withArgs('SOCKET_ONOPEN')
|
||||
mockStore.expects('commit').withArgs(expectedMsg.mutation)
|
||||
|
||||
mockServer = new Server(wsUrl)
|
||||
mockServer.on('connection', ws => {
|
||||
ws.send(JSON.stringify(expectedMsg))
|
||||
})
|
||||
|
||||
Vue.use(VueNativeSock, wsUrl)
|
||||
let vm = new Vue()
|
||||
observer = new Observer(wsUrl, null, mockStore.object, {
|
||||
format: 'json',
|
||||
websocket: new WebSocket(wsUrl)
|
||||
})
|
||||
|
||||
setTimeout(() => {
|
||||
mockStore.verify()
|
||||
mockServer.stop(done)
|
||||
}, 100)
|
||||
})
|
||||
|
||||
// TODO: DRY
|
||||
it ('passes a namespaced json event to the provided vuex store', (done) => {
|
||||
let expectedMsg = { namespace: 'users', mutation: 'setName', value: 'steve' }
|
||||
let mockStore = sinon.mock({ commit: () => {} })
|
||||
mockStore.expects('commit').withArgs('SOCKET_ONOPEN')
|
||||
mockStore.expects('commit').withArgs(expectedMsg.namespace + '/' + expectedMsg.mutation)
|
||||
|
||||
mockServer = new Server(wsUrl)
|
||||
mockServer.on('connection', ws => {
|
||||
ws.send(JSON.stringify(expectedMsg))
|
||||
})
|
||||
|
||||
Vue.use(VueNativeSock, wsUrl)
|
||||
let vm = new Vue()
|
||||
observer = new Observer(wsUrl, null, mockStore.object, {
|
||||
format: 'json',
|
||||
websocket: new WebSocket(wsUrl)
|
||||
})
|
||||
|
||||
setTimeout(() => {
|
||||
mockStore.verify()
|
||||
mockServer.stop(done)
|
||||
}, 100)
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user