UNPKG

bfx-api-node-ws1

Version:

Legacy WSv1 transport for the Bitfinex Node API

84 lines (66 loc) 2.15 kB
/* eslint-env mocha */ 'use strict' const assert = require('assert') const BfxWs = require('../../lib/ws') const bfxWs = new BfxWs({ apiKey: 'dummy', apiSecret: 'dummy' }) describe('ws1 channel msg handling', () => { it('ws1 transforms & normalizes well - R0 update', (done) => { bfxWs._channelMap = { 32755: { channel: 'book', prec: 'R0', symbol: 'tBTCUSD' } } bfxWs.once('orderbook', (symbol, data) => { assert.deepStrictEqual(data, { price: 2477.1, orderId: 2919111002, amount: 0.0125 }) done() }) bfxWs._handleChannel([32755, 2919111002, 2477.1, 0.0125]) }) it('ws1 transforms & normalizes well - P1 update', (done) => { bfxWs._channelMap = { 182: { channel: 'book', prec: 'P1', symbol: 'tBTCUSD' } } bfxWs.once('orderbook', (symbol, data) => { assert.deepStrictEqual(data, { price: 2494, count: 2, amount: 5.9895 }) done() }) bfxWs._handleChannel([182, 2494, 2, 5.9895]) }) it('ws1 transforms & normalizes well - P1 snap', (done) => { bfxWs._channelMap = { 39: { channel: 'book', prec: 'P1', symbol: 'tBTCUSD' } } bfxWs.once('orderbook', (symbol, data) => { assert.deepStrictEqual(data[1], { price: 2494, count: 3, amount: 0.14606853 }) done() }) const snap = [39, [ [2495, 2, 0.8744], [2494, 3, 0.14606853], [2492, 1, 0.4] ]] bfxWs._handleChannel(snap) }) it('ws1 transforms & normalizes well - R0 snap', (done) => { bfxWs._channelMap = { 34513: { channel: 'book', prec: 'R0', symbol: 'tBTCUSD' } } bfxWs.once('orderbook', (symbol, data) => { assert.deepStrictEqual( data[1], { price: 2494.5, orderId: 2919279471, amount: 0.07288 } ) done() }) const snap = [34513, [ [2919278474, 2494.5, 0.07901704], [2919279471, 2494.5, 0.07288], [2919280093, 2494.5, 0.03644] ]] bfxWs._handleChannel(snap) }) it('ws1 _handleChannel ignores heartbeats') it('ws1 _processUserEvent emits data, breaks up snapshots') it('ws1 _processTradeEvent emits a single trade for te & tu messages') })