From 91702bbae214f56e7ff66156fa799fcfb83f6e42 Mon Sep 17 00:00:00 2001 From: Brandon Millman Date: Fri, 14 Sep 2018 13:45:14 +0200 Subject: Move packages/forwarder-helper into packages/asset-buyer --- .../asset-buyer/test/forwarder_helper_impl_test.ts | 136 +++++++++++++++++++++ packages/asset-buyer/test/utils/chai_setup.ts | 13 ++ 2 files changed, 149 insertions(+) create mode 100644 packages/asset-buyer/test/forwarder_helper_impl_test.ts create mode 100644 packages/asset-buyer/test/utils/chai_setup.ts (limited to 'packages/asset-buyer/test') diff --git a/packages/asset-buyer/test/forwarder_helper_impl_test.ts b/packages/asset-buyer/test/forwarder_helper_impl_test.ts new file mode 100644 index 000000000..3c3b6db92 --- /dev/null +++ b/packages/asset-buyer/test/forwarder_helper_impl_test.ts @@ -0,0 +1,136 @@ +import { testOrderFactory } from '@0xproject/order-utils/lib/test/utils/test_order_factory'; +import { BigNumber } from '@0xproject/utils'; +import * as chai from 'chai'; +import * as _ from 'lodash'; +import 'mocha'; + +import { ForwarderHelperImpl, ForwarderHelperImplConfig } from '../src/forwarder_helper_impl'; +import { ForwarderHelperError } from '../src/types'; + +import { chaiSetup } from './utils/chai_setup'; + +chaiSetup.configure(); +const expect = chai.expect; + +describe('ForwarderHelperImpl', () => { + // rate: 2 takerAsset / makerAsset + const testOrder1 = testOrderFactory.generateTestSignedOrder({ + makerAssetAmount: new BigNumber(100), + takerAssetAmount: new BigNumber(200), + }); + // rate: 1 takerAsset / makerAsset + const testOrder2 = testOrderFactory.generateTestSignedOrder({ + makerAssetAmount: new BigNumber(100), + takerAssetAmount: new BigNumber(100), + }); + // rate: 3 takerAsset / makerAsset + const testOrder3 = testOrderFactory.generateTestSignedOrder({ + makerAssetAmount: new BigNumber(100), + takerAssetAmount: new BigNumber(300), + takerFee: new BigNumber(1), + }); + // rate: 3 WETH / ZRX + const testFeeOrder1 = testOrderFactory.generateTestSignedOrder({ + makerAssetAmount: new BigNumber(100), + takerAssetAmount: new BigNumber(300), + }); + // rate: 2 WETH / ZRX + const testFeeOrder2 = testOrderFactory.generateTestSignedOrder({ + makerAssetAmount: new BigNumber(100), + takerAssetAmount: new BigNumber(200), + }); + // rate: 1 WETH / ZRX + const testFeeOrder3 = testOrderFactory.generateTestSignedOrder({ + makerAssetAmount: new BigNumber(100), + takerAssetAmount: new BigNumber(100), + }); + const inputForwarderHelperConfig: ForwarderHelperImplConfig = { + orders: [testOrder1, testOrder2, testOrder3], + feeOrders: [testFeeOrder1, testFeeOrder2, testFeeOrder3], + remainingFillableMakerAssetAmounts: [new BigNumber(1), new BigNumber(2), new BigNumber(3)], + remainingFillableFeeAmounts: [new BigNumber(4), new BigNumber(5), new BigNumber(6)], + }; + describe('#constructor', () => { + const inputForwarderHelperConfigNoRemainingAmounts: ForwarderHelperImplConfig = { + orders: [testOrder1, testOrder2, testOrder3], + feeOrders: [testFeeOrder1, testFeeOrder2, testFeeOrder3], + }; + it('sorts orders', () => { + const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfig); + expect(forwarderHelper.config.orders).deep.equals([testOrder2, testOrder1, testOrder3]); + }); + it('sorts fee orders', () => { + const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfig); + expect(forwarderHelper.config.feeOrders).deep.equals([testFeeOrder3, testFeeOrder2, testFeeOrder1]); + }); + it('sorts remainingFillableMakerAssetAmounts', () => { + const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfig); + expect(forwarderHelper.config.remainingFillableMakerAssetAmounts).to.be.not.undefined(); + expect(_.nth(forwarderHelper.config.remainingFillableMakerAssetAmounts, 0)).to.bignumber.equal( + new BigNumber(2), + ); + expect(_.nth(forwarderHelper.config.remainingFillableMakerAssetAmounts, 1)).to.bignumber.equal( + new BigNumber(1), + ); + expect(_.nth(forwarderHelper.config.remainingFillableMakerAssetAmounts, 2)).to.bignumber.equal( + new BigNumber(3), + ); + }); + it('sorts remainingFillableFeeAmounts', () => { + const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfig); + expect(forwarderHelper.config.remainingFillableFeeAmounts).to.be.not.undefined(); + expect(_.nth(forwarderHelper.config.remainingFillableFeeAmounts, 0)).to.bignumber.equal(new BigNumber(6)); + expect(_.nth(forwarderHelper.config.remainingFillableFeeAmounts, 1)).to.bignumber.equal(new BigNumber(5)); + expect(_.nth(forwarderHelper.config.remainingFillableFeeAmounts, 2)).to.bignumber.equal(new BigNumber(4)); + }); + it('remainingFillableMakerAssetAmounts is undefined if none provided', () => { + const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfigNoRemainingAmounts); + expect(forwarderHelper.config.remainingFillableMakerAssetAmounts).to.be.undefined(); + }); + it('remainingFillableFeeAmounts is undefined if none provided', () => { + const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfigNoRemainingAmounts); + expect(forwarderHelper.config.remainingFillableFeeAmounts).to.be.undefined(); + }); + }); + describe('#getMarketBuyOrdersInfo', () => { + it('throws if not enough makerAsset liquidity', () => { + const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfig); + expect(() => { + // request for 6 makerAsset units, because we have exactly 6 available we should throw because there is a built in slippage buffer + forwarderHelper.getMarketBuyOrdersInfo({ + makerAssetFillAmount: new BigNumber(6), + }); + }).to.throw(ForwarderHelperError.InsufficientMakerAssetLiquidity); + }); + it('throws if not enough ZRX liquidity', () => { + const inputForwarderHelperConfigNoFees: ForwarderHelperImplConfig = { + orders: [testOrder1, testOrder2, testOrder3], + feeOrders: [], + }; + const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfigNoFees); + expect(() => { + // request for 4 makerAsset units, we need fees but no fee orders exist, show we should throw + forwarderHelper.getMarketBuyOrdersInfo({ + makerAssetFillAmount: new BigNumber(250), + }); + }).to.throw(ForwarderHelperError.InsufficientZrxLiquidity); + }); + it('passes the makerAssetFillAmount from the request to the info response', () => { + const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfig); + const makerAssetFillAmount = new BigNumber(4); + const info = forwarderHelper.getMarketBuyOrdersInfo({ + makerAssetFillAmount, + }); + expect(info.makerAssetFillAmount).to.bignumber.equal(makerAssetFillAmount); + }); + it('passes the feePercentage from the request to the info response', () => { + const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfig); + const feePercentage = new BigNumber(0.2); + const info = forwarderHelper.getMarketBuyOrdersInfo({ + makerAssetFillAmount: new BigNumber(4), + feePercentage, + }); + expect(info.feePercentage).to.bignumber.equal(feePercentage); + }); + }); +}); diff --git a/packages/asset-buyer/test/utils/chai_setup.ts b/packages/asset-buyer/test/utils/chai_setup.ts new file mode 100644 index 000000000..1a8733093 --- /dev/null +++ b/packages/asset-buyer/test/utils/chai_setup.ts @@ -0,0 +1,13 @@ +import * as chai from 'chai'; +import chaiAsPromised = require('chai-as-promised'); +import ChaiBigNumber = require('chai-bignumber'); +import * as dirtyChai from 'dirty-chai'; + +export const chaiSetup = { + configure(): void { + chai.config.includeStack = true; + chai.use(ChaiBigNumber()); + chai.use(dirtyChai); + chai.use(chaiAsPromised); + }, +}; -- cgit v1.2.3 From 7b46cef83dca0a743bd598a70076004983cbf294 Mon Sep 17 00:00:00 2001 From: Brandon Millman Date: Fri, 14 Sep 2018 16:18:16 +0200 Subject: Create initial AssetBuyer class --- .../asset-buyer/test/forwarder_helper_impl_test.ts | 264 ++++++++++----------- 1 file changed, 132 insertions(+), 132 deletions(-) (limited to 'packages/asset-buyer/test') diff --git a/packages/asset-buyer/test/forwarder_helper_impl_test.ts b/packages/asset-buyer/test/forwarder_helper_impl_test.ts index 3c3b6db92..b7c014402 100644 --- a/packages/asset-buyer/test/forwarder_helper_impl_test.ts +++ b/packages/asset-buyer/test/forwarder_helper_impl_test.ts @@ -1,136 +1,136 @@ -import { testOrderFactory } from '@0xproject/order-utils/lib/test/utils/test_order_factory'; -import { BigNumber } from '@0xproject/utils'; -import * as chai from 'chai'; -import * as _ from 'lodash'; -import 'mocha'; +// import { testOrderFactory } from '@0xproject/order-utils/lib/test/utils/test_order_factory'; +// import { BigNumber } from '@0xproject/utils'; +// import * as chai from 'chai'; +// import * as _ from 'lodash'; +// import 'mocha'; -import { ForwarderHelperImpl, ForwarderHelperImplConfig } from '../src/forwarder_helper_impl'; -import { ForwarderHelperError } from '../src/types'; +// import { ForwarderHelperImpl, ForwarderHelperImplConfig } from '@0xproject/asset-buyer/src/asset_buyer'; +// import { ForwarderHelperError } from '../src/types'; -import { chaiSetup } from './utils/chai_setup'; +// import { chaiSetup } from './utils/chai_setup'; -chaiSetup.configure(); -const expect = chai.expect; +// chaiSetup.configure(); +// const expect = chai.expect; -describe('ForwarderHelperImpl', () => { - // rate: 2 takerAsset / makerAsset - const testOrder1 = testOrderFactory.generateTestSignedOrder({ - makerAssetAmount: new BigNumber(100), - takerAssetAmount: new BigNumber(200), - }); - // rate: 1 takerAsset / makerAsset - const testOrder2 = testOrderFactory.generateTestSignedOrder({ - makerAssetAmount: new BigNumber(100), - takerAssetAmount: new BigNumber(100), - }); - // rate: 3 takerAsset / makerAsset - const testOrder3 = testOrderFactory.generateTestSignedOrder({ - makerAssetAmount: new BigNumber(100), - takerAssetAmount: new BigNumber(300), - takerFee: new BigNumber(1), - }); - // rate: 3 WETH / ZRX - const testFeeOrder1 = testOrderFactory.generateTestSignedOrder({ - makerAssetAmount: new BigNumber(100), - takerAssetAmount: new BigNumber(300), - }); - // rate: 2 WETH / ZRX - const testFeeOrder2 = testOrderFactory.generateTestSignedOrder({ - makerAssetAmount: new BigNumber(100), - takerAssetAmount: new BigNumber(200), - }); - // rate: 1 WETH / ZRX - const testFeeOrder3 = testOrderFactory.generateTestSignedOrder({ - makerAssetAmount: new BigNumber(100), - takerAssetAmount: new BigNumber(100), - }); - const inputForwarderHelperConfig: ForwarderHelperImplConfig = { - orders: [testOrder1, testOrder2, testOrder3], - feeOrders: [testFeeOrder1, testFeeOrder2, testFeeOrder3], - remainingFillableMakerAssetAmounts: [new BigNumber(1), new BigNumber(2), new BigNumber(3)], - remainingFillableFeeAmounts: [new BigNumber(4), new BigNumber(5), new BigNumber(6)], - }; - describe('#constructor', () => { - const inputForwarderHelperConfigNoRemainingAmounts: ForwarderHelperImplConfig = { - orders: [testOrder1, testOrder2, testOrder3], - feeOrders: [testFeeOrder1, testFeeOrder2, testFeeOrder3], - }; - it('sorts orders', () => { - const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfig); - expect(forwarderHelper.config.orders).deep.equals([testOrder2, testOrder1, testOrder3]); - }); - it('sorts fee orders', () => { - const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfig); - expect(forwarderHelper.config.feeOrders).deep.equals([testFeeOrder3, testFeeOrder2, testFeeOrder1]); - }); - it('sorts remainingFillableMakerAssetAmounts', () => { - const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfig); - expect(forwarderHelper.config.remainingFillableMakerAssetAmounts).to.be.not.undefined(); - expect(_.nth(forwarderHelper.config.remainingFillableMakerAssetAmounts, 0)).to.bignumber.equal( - new BigNumber(2), - ); - expect(_.nth(forwarderHelper.config.remainingFillableMakerAssetAmounts, 1)).to.bignumber.equal( - new BigNumber(1), - ); - expect(_.nth(forwarderHelper.config.remainingFillableMakerAssetAmounts, 2)).to.bignumber.equal( - new BigNumber(3), - ); - }); - it('sorts remainingFillableFeeAmounts', () => { - const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfig); - expect(forwarderHelper.config.remainingFillableFeeAmounts).to.be.not.undefined(); - expect(_.nth(forwarderHelper.config.remainingFillableFeeAmounts, 0)).to.bignumber.equal(new BigNumber(6)); - expect(_.nth(forwarderHelper.config.remainingFillableFeeAmounts, 1)).to.bignumber.equal(new BigNumber(5)); - expect(_.nth(forwarderHelper.config.remainingFillableFeeAmounts, 2)).to.bignumber.equal(new BigNumber(4)); - }); - it('remainingFillableMakerAssetAmounts is undefined if none provided', () => { - const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfigNoRemainingAmounts); - expect(forwarderHelper.config.remainingFillableMakerAssetAmounts).to.be.undefined(); - }); - it('remainingFillableFeeAmounts is undefined if none provided', () => { - const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfigNoRemainingAmounts); - expect(forwarderHelper.config.remainingFillableFeeAmounts).to.be.undefined(); - }); - }); - describe('#getMarketBuyOrdersInfo', () => { - it('throws if not enough makerAsset liquidity', () => { - const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfig); - expect(() => { - // request for 6 makerAsset units, because we have exactly 6 available we should throw because there is a built in slippage buffer - forwarderHelper.getMarketBuyOrdersInfo({ - makerAssetFillAmount: new BigNumber(6), - }); - }).to.throw(ForwarderHelperError.InsufficientMakerAssetLiquidity); - }); - it('throws if not enough ZRX liquidity', () => { - const inputForwarderHelperConfigNoFees: ForwarderHelperImplConfig = { - orders: [testOrder1, testOrder2, testOrder3], - feeOrders: [], - }; - const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfigNoFees); - expect(() => { - // request for 4 makerAsset units, we need fees but no fee orders exist, show we should throw - forwarderHelper.getMarketBuyOrdersInfo({ - makerAssetFillAmount: new BigNumber(250), - }); - }).to.throw(ForwarderHelperError.InsufficientZrxLiquidity); - }); - it('passes the makerAssetFillAmount from the request to the info response', () => { - const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfig); - const makerAssetFillAmount = new BigNumber(4); - const info = forwarderHelper.getMarketBuyOrdersInfo({ - makerAssetFillAmount, - }); - expect(info.makerAssetFillAmount).to.bignumber.equal(makerAssetFillAmount); - }); - it('passes the feePercentage from the request to the info response', () => { - const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfig); - const feePercentage = new BigNumber(0.2); - const info = forwarderHelper.getMarketBuyOrdersInfo({ - makerAssetFillAmount: new BigNumber(4), - feePercentage, - }); - expect(info.feePercentage).to.bignumber.equal(feePercentage); - }); - }); -}); +// describe('ForwarderHelperImpl', () => { +// // rate: 2 takerAsset / makerAsset +// const testOrder1 = testOrderFactory.generateTestSignedOrder({ +// makerAssetAmount: new BigNumber(100), +// takerAssetAmount: new BigNumber(200), +// }); +// // rate: 1 takerAsset / makerAsset +// const testOrder2 = testOrderFactory.generateTestSignedOrder({ +// makerAssetAmount: new BigNumber(100), +// takerAssetAmount: new BigNumber(100), +// }); +// // rate: 3 takerAsset / makerAsset +// const testOrder3 = testOrderFactory.generateTestSignedOrder({ +// makerAssetAmount: new BigNumber(100), +// takerAssetAmount: new BigNumber(300), +// takerFee: new BigNumber(1), +// }); +// // rate: 3 WETH / ZRX +// const testFeeOrder1 = testOrderFactory.generateTestSignedOrder({ +// makerAssetAmount: new BigNumber(100), +// takerAssetAmount: new BigNumber(300), +// }); +// // rate: 2 WETH / ZRX +// const testFeeOrder2 = testOrderFactory.generateTestSignedOrder({ +// makerAssetAmount: new BigNumber(100), +// takerAssetAmount: new BigNumber(200), +// }); +// // rate: 1 WETH / ZRX +// const testFeeOrder3 = testOrderFactory.generateTestSignedOrder({ +// makerAssetAmount: new BigNumber(100), +// takerAssetAmount: new BigNumber(100), +// }); +// const inputForwarderHelperConfig: ForwarderHelperImplConfig = { +// orders: [testOrder1, testOrder2, testOrder3], +// feeOrders: [testFeeOrder1, testFeeOrder2, testFeeOrder3], +// remainingFillableMakerAssetAmounts: [new BigNumber(1), new BigNumber(2), new BigNumber(3)], +// remainingFillableFeeAmounts: [new BigNumber(4), new BigNumber(5), new BigNumber(6)], +// }; +// describe('#constructor', () => { +// const inputForwarderHelperConfigNoRemainingAmounts: ForwarderHelperImplConfig = { +// orders: [testOrder1, testOrder2, testOrder3], +// feeOrders: [testFeeOrder1, testFeeOrder2, testFeeOrder3], +// }; +// it('sorts orders', () => { +// const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfig); +// expect(forwarderHelper.config.orders).deep.equals([testOrder2, testOrder1, testOrder3]); +// }); +// it('sorts fee orders', () => { +// const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfig); +// expect(forwarderHelper.config.feeOrders).deep.equals([testFeeOrder3, testFeeOrder2, testFeeOrder1]); +// }); +// it('sorts remainingFillableMakerAssetAmounts', () => { +// const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfig); +// expect(forwarderHelper.config.remainingFillableMakerAssetAmounts).to.be.not.undefined(); +// expect(_.nth(forwarderHelper.config.remainingFillableMakerAssetAmounts, 0)).to.bignumber.equal( +// new BigNumber(2), +// ); +// expect(_.nth(forwarderHelper.config.remainingFillableMakerAssetAmounts, 1)).to.bignumber.equal( +// new BigNumber(1), +// ); +// expect(_.nth(forwarderHelper.config.remainingFillableMakerAssetAmounts, 2)).to.bignumber.equal( +// new BigNumber(3), +// ); +// }); +// it('sorts remainingFillableFeeAmounts', () => { +// const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfig); +// expect(forwarderHelper.config.remainingFillableFeeAmounts).to.be.not.undefined(); +// expect(_.nth(forwarderHelper.config.remainingFillableFeeAmounts, 0)).to.bignumber.equal(new BigNumber(6)); +// expect(_.nth(forwarderHelper.config.remainingFillableFeeAmounts, 1)).to.bignumber.equal(new BigNumber(5)); +// expect(_.nth(forwarderHelper.config.remainingFillableFeeAmounts, 2)).to.bignumber.equal(new BigNumber(4)); +// }); +// it('remainingFillableMakerAssetAmounts is undefined if none provided', () => { +// const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfigNoRemainingAmounts); +// expect(forwarderHelper.config.remainingFillableMakerAssetAmounts).to.be.undefined(); +// }); +// it('remainingFillableFeeAmounts is undefined if none provided', () => { +// const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfigNoRemainingAmounts); +// expect(forwarderHelper.config.remainingFillableFeeAmounts).to.be.undefined(); +// }); +// }); +// describe('#getMarketBuyOrdersInfo', () => { +// it('throws if not enough makerAsset liquidity', () => { +// const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfig); +// expect(() => { +// // request for 6 makerAsset units, because we have exactly 6 available we should throw because there is a built in slippage buffer +// forwarderHelper.getMarketBuyOrdersInfo({ +// makerAssetFillAmount: new BigNumber(6), +// }); +// }).to.throw(ForwarderHelperError.InsufficientMakerAssetLiquidity); +// }); +// it('throws if not enough ZRX liquidity', () => { +// const inputForwarderHelperConfigNoFees: ForwarderHelperImplConfig = { +// orders: [testOrder1, testOrder2, testOrder3], +// feeOrders: [], +// }; +// const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfigNoFees); +// expect(() => { +// // request for 4 makerAsset units, we need fees but no fee orders exist, show we should throw +// forwarderHelper.getMarketBuyOrdersInfo({ +// makerAssetFillAmount: new BigNumber(250), +// }); +// }).to.throw(ForwarderHelperError.InsufficientZrxLiquidity); +// }); +// it('passes the makerAssetFillAmount from the request to the info response', () => { +// const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfig); +// const makerAssetFillAmount = new BigNumber(4); +// const info = forwarderHelper.getMarketBuyOrdersInfo({ +// makerAssetFillAmount, +// }); +// expect(info.makerAssetFillAmount).to.bignumber.equal(makerAssetFillAmount); +// }); +// it('passes the feePercentage from the request to the info response', () => { +// const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfig); +// const feePercentage = new BigNumber(0.2); +// const info = forwarderHelper.getMarketBuyOrdersInfo({ +// makerAssetFillAmount: new BigNumber(4), +// feePercentage, +// }); +// expect(info.feePercentage).to.bignumber.equal(feePercentage); +// }); +// }); +// }); -- cgit v1.2.3 From dfe58e4975e0ad3edf08fdc6d3441e83171096a9 Mon Sep 17 00:00:00 2001 From: Brandon Millman Date: Sat, 15 Sep 2018 14:08:34 +0200 Subject: Delete old test --- .../asset-buyer/test/forwarder_helper_impl_test.ts | 136 --------------------- 1 file changed, 136 deletions(-) delete mode 100644 packages/asset-buyer/test/forwarder_helper_impl_test.ts (limited to 'packages/asset-buyer/test') diff --git a/packages/asset-buyer/test/forwarder_helper_impl_test.ts b/packages/asset-buyer/test/forwarder_helper_impl_test.ts deleted file mode 100644 index b7c014402..000000000 --- a/packages/asset-buyer/test/forwarder_helper_impl_test.ts +++ /dev/null @@ -1,136 +0,0 @@ -// import { testOrderFactory } from '@0xproject/order-utils/lib/test/utils/test_order_factory'; -// import { BigNumber } from '@0xproject/utils'; -// import * as chai from 'chai'; -// import * as _ from 'lodash'; -// import 'mocha'; - -// import { ForwarderHelperImpl, ForwarderHelperImplConfig } from '@0xproject/asset-buyer/src/asset_buyer'; -// import { ForwarderHelperError } from '../src/types'; - -// import { chaiSetup } from './utils/chai_setup'; - -// chaiSetup.configure(); -// const expect = chai.expect; - -// describe('ForwarderHelperImpl', () => { -// // rate: 2 takerAsset / makerAsset -// const testOrder1 = testOrderFactory.generateTestSignedOrder({ -// makerAssetAmount: new BigNumber(100), -// takerAssetAmount: new BigNumber(200), -// }); -// // rate: 1 takerAsset / makerAsset -// const testOrder2 = testOrderFactory.generateTestSignedOrder({ -// makerAssetAmount: new BigNumber(100), -// takerAssetAmount: new BigNumber(100), -// }); -// // rate: 3 takerAsset / makerAsset -// const testOrder3 = testOrderFactory.generateTestSignedOrder({ -// makerAssetAmount: new BigNumber(100), -// takerAssetAmount: new BigNumber(300), -// takerFee: new BigNumber(1), -// }); -// // rate: 3 WETH / ZRX -// const testFeeOrder1 = testOrderFactory.generateTestSignedOrder({ -// makerAssetAmount: new BigNumber(100), -// takerAssetAmount: new BigNumber(300), -// }); -// // rate: 2 WETH / ZRX -// const testFeeOrder2 = testOrderFactory.generateTestSignedOrder({ -// makerAssetAmount: new BigNumber(100), -// takerAssetAmount: new BigNumber(200), -// }); -// // rate: 1 WETH / ZRX -// const testFeeOrder3 = testOrderFactory.generateTestSignedOrder({ -// makerAssetAmount: new BigNumber(100), -// takerAssetAmount: new BigNumber(100), -// }); -// const inputForwarderHelperConfig: ForwarderHelperImplConfig = { -// orders: [testOrder1, testOrder2, testOrder3], -// feeOrders: [testFeeOrder1, testFeeOrder2, testFeeOrder3], -// remainingFillableMakerAssetAmounts: [new BigNumber(1), new BigNumber(2), new BigNumber(3)], -// remainingFillableFeeAmounts: [new BigNumber(4), new BigNumber(5), new BigNumber(6)], -// }; -// describe('#constructor', () => { -// const inputForwarderHelperConfigNoRemainingAmounts: ForwarderHelperImplConfig = { -// orders: [testOrder1, testOrder2, testOrder3], -// feeOrders: [testFeeOrder1, testFeeOrder2, testFeeOrder3], -// }; -// it('sorts orders', () => { -// const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfig); -// expect(forwarderHelper.config.orders).deep.equals([testOrder2, testOrder1, testOrder3]); -// }); -// it('sorts fee orders', () => { -// const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfig); -// expect(forwarderHelper.config.feeOrders).deep.equals([testFeeOrder3, testFeeOrder2, testFeeOrder1]); -// }); -// it('sorts remainingFillableMakerAssetAmounts', () => { -// const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfig); -// expect(forwarderHelper.config.remainingFillableMakerAssetAmounts).to.be.not.undefined(); -// expect(_.nth(forwarderHelper.config.remainingFillableMakerAssetAmounts, 0)).to.bignumber.equal( -// new BigNumber(2), -// ); -// expect(_.nth(forwarderHelper.config.remainingFillableMakerAssetAmounts, 1)).to.bignumber.equal( -// new BigNumber(1), -// ); -// expect(_.nth(forwarderHelper.config.remainingFillableMakerAssetAmounts, 2)).to.bignumber.equal( -// new BigNumber(3), -// ); -// }); -// it('sorts remainingFillableFeeAmounts', () => { -// const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfig); -// expect(forwarderHelper.config.remainingFillableFeeAmounts).to.be.not.undefined(); -// expect(_.nth(forwarderHelper.config.remainingFillableFeeAmounts, 0)).to.bignumber.equal(new BigNumber(6)); -// expect(_.nth(forwarderHelper.config.remainingFillableFeeAmounts, 1)).to.bignumber.equal(new BigNumber(5)); -// expect(_.nth(forwarderHelper.config.remainingFillableFeeAmounts, 2)).to.bignumber.equal(new BigNumber(4)); -// }); -// it('remainingFillableMakerAssetAmounts is undefined if none provided', () => { -// const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfigNoRemainingAmounts); -// expect(forwarderHelper.config.remainingFillableMakerAssetAmounts).to.be.undefined(); -// }); -// it('remainingFillableFeeAmounts is undefined if none provided', () => { -// const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfigNoRemainingAmounts); -// expect(forwarderHelper.config.remainingFillableFeeAmounts).to.be.undefined(); -// }); -// }); -// describe('#getMarketBuyOrdersInfo', () => { -// it('throws if not enough makerAsset liquidity', () => { -// const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfig); -// expect(() => { -// // request for 6 makerAsset units, because we have exactly 6 available we should throw because there is a built in slippage buffer -// forwarderHelper.getMarketBuyOrdersInfo({ -// makerAssetFillAmount: new BigNumber(6), -// }); -// }).to.throw(ForwarderHelperError.InsufficientMakerAssetLiquidity); -// }); -// it('throws if not enough ZRX liquidity', () => { -// const inputForwarderHelperConfigNoFees: ForwarderHelperImplConfig = { -// orders: [testOrder1, testOrder2, testOrder3], -// feeOrders: [], -// }; -// const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfigNoFees); -// expect(() => { -// // request for 4 makerAsset units, we need fees but no fee orders exist, show we should throw -// forwarderHelper.getMarketBuyOrdersInfo({ -// makerAssetFillAmount: new BigNumber(250), -// }); -// }).to.throw(ForwarderHelperError.InsufficientZrxLiquidity); -// }); -// it('passes the makerAssetFillAmount from the request to the info response', () => { -// const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfig); -// const makerAssetFillAmount = new BigNumber(4); -// const info = forwarderHelper.getMarketBuyOrdersInfo({ -// makerAssetFillAmount, -// }); -// expect(info.makerAssetFillAmount).to.bignumber.equal(makerAssetFillAmount); -// }); -// it('passes the feePercentage from the request to the info response', () => { -// const forwarderHelper = new ForwarderHelperImpl(inputForwarderHelperConfig); -// const feePercentage = new BigNumber(0.2); -// const info = forwarderHelper.getMarketBuyOrdersInfo({ -// makerAssetFillAmount: new BigNumber(4), -// feePercentage, -// }); -// expect(info.feePercentage).to.bignumber.equal(feePercentage); -// }); -// }); -// }); -- cgit v1.2.3