Project now builds
This commit is contained in:
parent
41768617a9
commit
e7f19e350e
@ -11,6 +11,7 @@ import {
|
|||||||
AssetPairsRequestOpts,
|
AssetPairsRequestOpts,
|
||||||
AssetPairsResponse,
|
AssetPairsResponse,
|
||||||
Client,
|
Client,
|
||||||
|
FeeRecipientsResponse,
|
||||||
HttpRequestOptions,
|
HttpRequestOptions,
|
||||||
HttpRequestType,
|
HttpRequestType,
|
||||||
OrderbookRequest,
|
OrderbookRequest,
|
||||||
@ -20,8 +21,6 @@ import {
|
|||||||
OrdersRequestOpts,
|
OrdersRequestOpts,
|
||||||
OrdersResponse,
|
OrdersResponse,
|
||||||
PagedRequestOpts,
|
PagedRequestOpts,
|
||||||
PaginatedCollection,
|
|
||||||
FeeRecipientsResponse,
|
|
||||||
} from './types';
|
} from './types';
|
||||||
import { relayerResponseJsonParsers } from './utils/relayer_response_json_parsers';
|
import { relayerResponseJsonParsers } from './utils/relayer_response_json_parsers';
|
||||||
|
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
import { BigNumber } from '@0xproject/utils';
|
|
||||||
|
|
||||||
import { FeeRecipientsResponse } from '../../../src/types';
|
import { FeeRecipientsResponse } from '../../../src/types';
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { BigNumber } from '@0xproject/utils';
|
import { BigNumber } from '@0xproject/utils';
|
||||||
|
|
||||||
export const apiOrderResponse = {
|
export const orderResponse = {
|
||||||
order: {
|
order: {
|
||||||
makerAddress: '0x9e56625509c2f60af937f23b7b532600390e8c8b',
|
makerAddress: '0x9e56625509c2f60af937f23b7b532600390e8c8b',
|
||||||
takerAddress: '0xa2b31dacf30a9c50ca473337c01d8a201ae33e32',
|
takerAddress: '0xa2b31dacf30a9c50ca473337c01d8a201ae33e32',
|
||||||
|
@ -7,12 +7,12 @@ import 'mocha';
|
|||||||
|
|
||||||
import { HttpClient } from '../src/index';
|
import { HttpClient } from '../src/index';
|
||||||
|
|
||||||
import { assetDataPairsResponse } from './fixtures/standard_relayer_api/assetData_pairs';
|
import { assetDataPairsResponse } from './fixtures/standard_relayer_api/asset_pairs';
|
||||||
import * as assetDataPairsResponseJSON from './fixtures/standard_relayer_api/assetData_pairs.json';
|
import * as assetDataPairsResponseJSON from './fixtures/standard_relayer_api/asset_pairs.json';
|
||||||
import { feesResponse } from './fixtures/standard_relayer_api/fees';
|
|
||||||
import * as feesResponseJSON from './fixtures/standard_relayer_api/fees.json';
|
|
||||||
import { orderResponse } from './fixtures/standard_relayer_api/order/0xabc67323774bdbd24d94f977fa9ac94a50f016026fd13f42990861238897721f';
|
import { orderResponse } from './fixtures/standard_relayer_api/order/0xabc67323774bdbd24d94f977fa9ac94a50f016026fd13f42990861238897721f';
|
||||||
import * as orderResponseJSON from './fixtures/standard_relayer_api/order/0xabc67323774bdbd24d94f977fa9ac94a50f016026fd13f42990861238897721f.json';
|
import * as orderResponseJSON from './fixtures/standard_relayer_api/order/0xabc67323774bdbd24d94f977fa9ac94a50f016026fd13f42990861238897721f.json';
|
||||||
|
import { orderConfigResponse } from './fixtures/standard_relayer_api/order_config';
|
||||||
|
import * as orderConfigResponseJSON from './fixtures/standard_relayer_api/order_config.json';
|
||||||
import { orderbookResponse } from './fixtures/standard_relayer_api/orderbook';
|
import { orderbookResponse } from './fixtures/standard_relayer_api/orderbook';
|
||||||
import * as orderbookJSON from './fixtures/standard_relayer_api/orderbook.json';
|
import * as orderbookJSON from './fixtures/standard_relayer_api/orderbook.json';
|
||||||
import { ordersResponse } from './fixtures/standard_relayer_api/orders';
|
import { ordersResponse } from './fixtures/standard_relayer_api/orders';
|
||||||
@ -39,7 +39,7 @@ describe('HttpClient', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
describe('#getAssetPairsAsync', () => {
|
describe('#getAssetPairsAsync', () => {
|
||||||
const url = `${relayUrl}/assetData_pairs`;
|
const url = `${relayUrl}/asset_pairs`;
|
||||||
it('gets assetData pairs with default options when none are provided', async () => {
|
it('gets assetData pairs with default options when none are provided', async () => {
|
||||||
const urlWithQuery = `${url}?page=1&per_page=100`;
|
const urlWithQuery = `${url}?page=1&per_page=100`;
|
||||||
fetchMock.get(urlWithQuery, assetDataPairsResponseJSON);
|
fetchMock.get(urlWithQuery, assetDataPairsResponseJSON);
|
||||||
@ -134,32 +134,29 @@ describe('HttpClient', () => {
|
|||||||
});
|
});
|
||||||
describe('#getOrderConfigAsync', () => {
|
describe('#getOrderConfigAsync', () => {
|
||||||
const request = {
|
const request = {
|
||||||
|
makerAddress: '0x9e56625509c2f60af937f23b7b532600390e8c8b',
|
||||||
|
takerAddress: '0xa2b31dacf30a9c50ca473337c01d8a201ae33e32',
|
||||||
|
makerAssetAmount: '10000000000000000',
|
||||||
|
takerAssetAmount: '20000000000000000',
|
||||||
|
expirationTimeSeconds: '1532560590',
|
||||||
|
makerAssetData: '0xf47261b04c32345ced77393b3530b1eed0f346429d',
|
||||||
|
takerAssetData: '0x0257179264389b814a946f3e92105513705ca6b990',
|
||||||
exchangeAddress: '0x12459c951127e0c374ff9105dda097662a027093',
|
exchangeAddress: '0x12459c951127e0c374ff9105dda097662a027093',
|
||||||
maker: '0x9e56625509c2f60af937f23b7b532600390e8c8b',
|
|
||||||
taker: '0xa2b31dacf30a9c50ca473337c01d8a201ae33e32',
|
|
||||||
makerTokenAddress: '0x323b5d4c32345ced77393b3530b1eed0f346429d',
|
|
||||||
takerTokenAddress: '0xef7fff64389b814a946f3e92105513705ca6b990',
|
|
||||||
makerAssetAmount: new BigNumber('10000000000000000000'),
|
|
||||||
takerAssetAmount: new BigNumber('30000000000000000000'),
|
|
||||||
salt: new BigNumber('256'),
|
|
||||||
expirationTimeSeconds: new BigNumber('42'),
|
|
||||||
};
|
};
|
||||||
const url = `${relayUrl}/fees`;
|
const url = `${relayUrl}/fees`;
|
||||||
it('gets fees', async () => {
|
it('gets fees', async () => {
|
||||||
fetchMock.post(url, feesResponseJSON);
|
fetchMock.post(url, orderConfigResponseJSON);
|
||||||
const fees = await relayerClient.getOrderConfigAsync(request);
|
const fees = await relayerClient.getOrderConfigAsync(request);
|
||||||
expect(fees).to.be.deep.equal(feesResponse);
|
expect(fees).to.be.deep.equal(orderConfigResponse);
|
||||||
});
|
});
|
||||||
it('does not mutate input', async () => {
|
it('does not mutate input', async () => {
|
||||||
fetchMock.post(url, feesResponseJSON);
|
fetchMock.post(url, orderConfigResponseJSON);
|
||||||
const makerAssetAmountBefore = new BigNumber(request.makerAssetAmount);
|
const makerAssetAmountBefore = new BigNumber(request.makerAssetAmount);
|
||||||
const takerAssetAmountBefore = new BigNumber(request.takerAssetAmount);
|
const takerAssetAmountBefore = new BigNumber(request.takerAssetAmount);
|
||||||
const saltBefore = new BigNumber(request.salt);
|
|
||||||
const expirationTimeSecondsBefore = new BigNumber(request.expirationTimeSeconds);
|
const expirationTimeSecondsBefore = new BigNumber(request.expirationTimeSeconds);
|
||||||
await relayerClient.getOrderConfigAsync(request);
|
await relayerClient.getOrderConfigAsync(request);
|
||||||
expect(makerAssetAmountBefore).to.be.deep.equal(request.makerAssetAmount);
|
expect(makerAssetAmountBefore).to.be.deep.equal(request.makerAssetAmount);
|
||||||
expect(takerAssetAmountBefore).to.be.deep.equal(request.takerAssetAmount);
|
expect(takerAssetAmountBefore).to.be.deep.equal(request.takerAssetAmount);
|
||||||
expect(saltBefore).to.be.deep.equal(request.salt);
|
|
||||||
expect(expirationTimeSecondsBefore).to.be.deep.equal(request.expirationTimeSeconds);
|
expect(expirationTimeSecondsBefore).to.be.deep.equal(request.expirationTimeSeconds);
|
||||||
});
|
});
|
||||||
it('throws an error for invalid JSON response', async () => {
|
it('throws an error for invalid JSON response', async () => {
|
||||||
|
@ -5,11 +5,6 @@ import 'mocha';
|
|||||||
import { ordersChannelMessageParser } from '../src/utils/orderbook_channel_message_parser';
|
import { ordersChannelMessageParser } from '../src/utils/orderbook_channel_message_parser';
|
||||||
|
|
||||||
import { orderResponse } from './fixtures/standard_relayer_api/order/0xabc67323774bdbd24d94f977fa9ac94a50f016026fd13f42990861238897721f';
|
import { orderResponse } from './fixtures/standard_relayer_api/order/0xabc67323774bdbd24d94f977fa9ac94a50f016026fd13f42990861238897721f';
|
||||||
import { orderbookResponse } from './fixtures/standard_relayer_api/orderbook';
|
|
||||||
import {
|
|
||||||
malformedSnapshotOrdersChannelMessage,
|
|
||||||
snapshotOrdersChannelMessage,
|
|
||||||
} from './fixtures/standard_relayer_api/snapshot_orderbook_channel_message';
|
|
||||||
import { unknownOrdersChannelMessage } from './fixtures/standard_relayer_api/unknown_orderbook_channel_message';
|
import { unknownOrdersChannelMessage } from './fixtures/standard_relayer_api/unknown_orderbook_channel_message';
|
||||||
import {
|
import {
|
||||||
malformedUpdateOrdersChannelMessage,
|
malformedUpdateOrdersChannelMessage,
|
||||||
@ -22,11 +17,6 @@ const expect = chai.expect;
|
|||||||
|
|
||||||
describe('ordersChannelMessageParser', () => {
|
describe('ordersChannelMessageParser', () => {
|
||||||
describe('#parser', () => {
|
describe('#parser', () => {
|
||||||
it('parses snapshot messages', () => {
|
|
||||||
const snapshotMessage = ordersChannelMessageParser.parse(snapshotOrdersChannelMessage);
|
|
||||||
expect(snapshotMessage.type).to.be.equal('snapshot');
|
|
||||||
expect(snapshotMessage.payload).to.be.deep.equal(orderbookResponse);
|
|
||||||
});
|
|
||||||
it('parses update messages', () => {
|
it('parses update messages', () => {
|
||||||
const updateMessage = ordersChannelMessageParser.parse(updateOrdersChannelMessage);
|
const updateMessage = ordersChannelMessageParser.parse(updateOrdersChannelMessage);
|
||||||
expect(updateMessage.type).to.be.equal('update');
|
expect(updateMessage.type).to.be.equal('update');
|
||||||
@ -56,13 +46,6 @@ describe('ordersChannelMessageParser', () => {
|
|||||||
const badCall = () => ordersChannelMessageParser.parse(messageWithBadType);
|
const badCall = () => ordersChannelMessageParser.parse(messageWithBadType);
|
||||||
expect(badCall).throws('Expected type to be of type string, encountered: 1');
|
expect(badCall).throws('Expected type to be of type string, encountered: 1');
|
||||||
});
|
});
|
||||||
it('throws when snapshot message has malformed payload', () => {
|
|
||||||
const badCall = () => ordersChannelMessageParser.parse(malformedSnapshotOrdersChannelMessage);
|
|
||||||
// tslint:disable-next-line:max-line-length
|
|
||||||
const errMsg =
|
|
||||||
'Validation errors: instance.payload requires property "bids", instance.payload requires property "asks"';
|
|
||||||
expect(badCall).throws(errMsg);
|
|
||||||
});
|
|
||||||
it('throws when update message has malformed payload', () => {
|
it('throws when update message has malformed payload', () => {
|
||||||
const badCall = () => ordersChannelMessageParser.parse(malformedUpdateOrdersChannelMessage);
|
const badCall = () => ordersChannelMessageParser.parse(malformedUpdateOrdersChannelMessage);
|
||||||
expect(badCall).throws(/^Expected message to conform to schema/);
|
expect(badCall).throws(/^Expected message to conform to schema/);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user