Add test for sorting that happens in constructor
This commit is contained in:
		| @@ -1,12 +1,95 @@ | |||||||
|  | import { testOrderFactory } from '@0xproject/order-utils/lib/test/utils/test_order_factory'; | ||||||
|  | import { BigNumber } from '@0xproject/utils'; | ||||||
| import * as chai from 'chai'; | import * as chai from 'chai'; | ||||||
|  | import * as _ from 'lodash'; | ||||||
| import 'mocha'; | import 'mocha'; | ||||||
|  |  | ||||||
|  | import { ForwarderHelperImpl, ForwarderHelperImplConfig } from '../src/forwarder_helper_impl'; | ||||||
|  |  | ||||||
| import { chaiSetup } from './utils/chai_setup'; | import { chaiSetup } from './utils/chai_setup'; | ||||||
|  |  | ||||||
| chaiSetup.configure(); | chaiSetup.configure(); | ||||||
| const expect = chai.expect; | const expect = chai.expect; | ||||||
|  |  | ||||||
| describe('ForwarderHelperImpl', () => { | describe('ForwarderHelperImpl', () => { | ||||||
|     describe('#getMarketBuyOrdersInfo', () => {}); |     // rate: 2 takerAsset / makerAsset | ||||||
|     describe('#getMarketSellOrdersInfo', () => {}); |     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), | ||||||
|  |     }); | ||||||
|  |     // 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), | ||||||
|  |     }); | ||||||
|  |     describe('#constructor', () => { | ||||||
|  |         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)], | ||||||
|  |         }; | ||||||
|  |         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', () => {}); | ||||||
|  |     // describe('#getMarketSellOrdersInfo', () => {}); | ||||||
| }); | }); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user