// import * as chai from 'chai'; // import * as dirtyChai from 'dirty-chai'; // import * as _ from 'lodash'; // import 'mocha'; // import * as WebSocket from 'websocket'; // import { BrowserWebSocketOrderbookChannel } from '../src/browser_ws_orderbook_channel'; // chai.config.includeStack = true; // chai.use(dirtyChai); // const expect = chai.expect; // describe('BrowserWebSocketOrderbookChannel', () => { // const websocketUrl = 'ws://localhost:8080'; // const client = new WebSocket.w3cwebsocket(websocketUrl); // const orderbookChannel = new BrowserWebSocketOrderbookChannel(client); // const subscriptionOpts = { // baseTokenAddress: '0x323b5d4c32345ced77393b3530b1eed0f346429d', // quoteTokenAddress: '0xef7fff64389b814a946f3e92105513705ca6b990', // snapshot: true, // limit: 100, // }; // const emptyOrderbookChannelHandler = { // onSnapshot: () => { // _.noop(); // }, // onUpdate: () => { // _.noop(); // }, // onError: () => { // _.noop(); // }, // onClose: () => { // _.noop(); // }, // }; // describe('#subscribe', () => { // it('throws when subscriptionOpts does not conform to schema', () => { // const badSubscribeCall = orderbookChannel.subscribe.bind( // orderbookChannel, // {}, // emptyOrderbookChannelHandler, // ); // 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(); // }); // }); // });