diff options
author | Brandon Millman <brandon.millman@gmail.com> | 2017-11-15 07:26:36 +0800 |
---|---|---|
committer | Brandon Millman <brandon.millman@gmail.com> | 2017-11-15 10:55:29 +0800 |
commit | 655b0636facc110e9192cc7c3190f4b16f212be9 (patch) | |
tree | 562109951a69321e6d8857798d4d5310248b71d7 /packages/connect/test/ws_orderbook_channel_test.ts | |
parent | 5bd8e172c9415e9d8eca2d3893fe767684018351 (diff) | |
download | dexon-sol-tools-655b0636facc110e9192cc7c3190f4b16f212be9.tar dexon-sol-tools-655b0636facc110e9192cc7c3190f4b16f212be9.tar.gz dexon-sol-tools-655b0636facc110e9192cc7c3190f4b16f212be9.tar.bz2 dexon-sol-tools-655b0636facc110e9192cc7c3190f4b16f212be9.tar.lz dexon-sol-tools-655b0636facc110e9192cc7c3190f4b16f212be9.tar.xz dexon-sol-tools-655b0636facc110e9192cc7c3190f4b16f212be9.tar.zst dexon-sol-tools-655b0636facc110e9192cc7c3190f4b16f212be9.zip |
Add connect to monorepo
Diffstat (limited to 'packages/connect/test/ws_orderbook_channel_test.ts')
-rw-r--r-- | packages/connect/test/ws_orderbook_channel_test.ts | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/packages/connect/test/ws_orderbook_channel_test.ts b/packages/connect/test/ws_orderbook_channel_test.ts new file mode 100644 index 000000000..6752950d9 --- /dev/null +++ b/packages/connect/test/ws_orderbook_channel_test.ts @@ -0,0 +1,46 @@ +import 'mocha'; +import * as dirtyChai from 'dirty-chai'; +import * as chai from 'chai'; +import { + WebSocketOrderbookChannel, +} from '../src/index'; + +chai.config.includeStack = true; +chai.use(dirtyChai); +const expect = chai.expect; + +describe('WebSocketOrderbookChannel', () => { + const websocketUrl = 'ws://localhost:8080'; + const orderbookChannel = new WebSocketOrderbookChannel(websocketUrl); + const subscriptionOpts = { + baseTokenAddress: '0x323b5d4c32345ced77393b3530b1eed0f346429d', + quoteTokenAddress: '0xef7fff64389b814a946f3e92105513705ca6b990', + snapshot: true, + limit: 100, + }; + const emptyOrderbookChannelHandler = { + onSnapshot: () => { return; }, + onUpdate: () => { return; }, + onError: () => { return; }, + onClose: () => { return; }, + }; + describe('#subscribe', () => { + it('throws when subscriptionOpts does not conform to schema', () => { + const badSubscribeCall = orderbookChannel.subscribe.bind( + orderbookChannel, {}, emptyOrderbookChannelHandler); + // tslint:disable-next-line:max-line-length + expect(badSubscribeCall) + .throws('Expected subscriptionOpts to conform to schema /RelayerApiOrderbookChannelSubscribePayload\nEncountered: {}\nValidation errors: instance requires property "baseTokenAddress", instance requires property "quoteTokenAddress"'); + }); + it('throws when handler has the incorrect members', () => { + const badSubscribeCall = orderbookChannel.subscribe.bind(orderbookChannel, subscriptionOpts, {}); + expect(badSubscribeCall) + .throws('Expected handler.onSnapshot to be of type function, encountered: undefined'); + }); + it('does not throw when inputs are of correct types', () => { + const goodSubscribeCall = orderbookChannel.subscribe.bind( + orderbookChannel, subscriptionOpts, emptyOrderbookChannelHandler); + expect(goodSubscribeCall).to.not.throw(); + }); + }); +}); |