bfx-api-node-plugin-wd
Version:
Connection watchdog plugin for the official Bitfinex Node API
47 lines (39 loc) • 1.09 kB
JavaScript
/* eslint-env mocha */
const assert = require('assert')
const _isFinite = require('lodash/isFinite')
const onWSMessage = require('../../lib/ws/message')
describe('ws:message', () => {
it('does nothing if an invalid packet wd delay is specified', () => {
const handler = onWSMessage({
getState: () => ({})
}, {
packetWDDelay: null
})
const res = handler()
assert.strictEqual(res, null)
})
it('updates the wd timeout on new messages if wd delay specified', (done) => {
const wdTimeout = setTimeout(() => {
done(new Error('old timeout should not have fired'))
}, 10)
const handler = onWSMessage({
getState: () => ({ wdTimeout }),
emit: (ev, eventName) => {
assert.strictEqual(ev, 42)
assert.strictEqual(eventName, 'close')
done()
}
}, {
packetWDDelay: 20
})
const res = handler({
state: {
ev: 42
}
})
const [, stateUpdate] = res
assert(stateUpdate.wdTimeout !== wdTimeout)
assert(_isFinite(stateUpdate.lastPacketMTS))
})
})