added unit tests to avoid regression due to variable order
This commit is contained in:
parent
61f03b0ea2
commit
32e1ae2b18
@ -13,6 +13,7 @@ import {
|
|||||||
provider,
|
provider,
|
||||||
randomAddress,
|
randomAddress,
|
||||||
txDefaults,
|
txDefaults,
|
||||||
|
toBaseUnitAmount,
|
||||||
} from '@0x/contracts-test-utils';
|
} from '@0x/contracts-test-utils';
|
||||||
import { assetDataUtils, generatePseudoRandomSalt } from '@0x/order-utils';
|
import { assetDataUtils, generatePseudoRandomSalt } from '@0x/order-utils';
|
||||||
import { SignedOrder } from '@0x/types';
|
import { SignedOrder } from '@0x/types';
|
||||||
@ -149,6 +150,35 @@ describe('DexSampler tests', () => {
|
|||||||
expect(fillableAmounts).to.deep.eq(expectedMakerFillAmounts);
|
expect(fillableAmounts).to.deep.eq(expectedMakerFillAmounts);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('getLiquidityProviderSellQuotes()', async () => {
|
||||||
|
const expectedMakerToken = randomAddress();
|
||||||
|
const expectedTakerToken = randomAddress();
|
||||||
|
const registry = randomAddress();
|
||||||
|
const sampler = new MockSamplerContract({
|
||||||
|
sampleSellsFromLiquidityProviderRegistry: (registryAddress, takerToken, makerToken, fillAmounts) => {
|
||||||
|
expect(registryAddress).to.eq(registry);
|
||||||
|
expect(takerToken).to.eq(expectedTakerToken);
|
||||||
|
expect(makerToken).to.eq(expectedMakerToken);
|
||||||
|
return [toBaseUnitAmount(1001)];
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const dexOrderSampler = new DexOrderSampler(sampler);
|
||||||
|
const [result] = await dexOrderSampler.executeAsync(
|
||||||
|
DexOrderSampler.ops.getSellQuotes(
|
||||||
|
[ERC20BridgeSource.LiquidityProvider],
|
||||||
|
expectedMakerToken,
|
||||||
|
expectedTakerToken,
|
||||||
|
[toBaseUnitAmount(1000)],
|
||||||
|
registry,
|
||||||
|
),
|
||||||
|
);
|
||||||
|
expect(result).to.deep.equal([[{
|
||||||
|
source: 'LiquidityProvider',
|
||||||
|
output: toBaseUnitAmount(1001),
|
||||||
|
input: toBaseUnitAmount(1000),
|
||||||
|
}]]);
|
||||||
|
})
|
||||||
|
|
||||||
it('getEth2DaiSellQuotes()', async () => {
|
it('getEth2DaiSellQuotes()', async () => {
|
||||||
const expectedTakerToken = randomAddress();
|
const expectedTakerToken = randomAddress();
|
||||||
const expectedMakerToken = randomAddress();
|
const expectedMakerToken = randomAddress();
|
||||||
|
@ -21,6 +21,12 @@ export type SampleBuysHandler = (
|
|||||||
makerToken: string,
|
makerToken: string,
|
||||||
makerTokenAmounts: BigNumber[],
|
makerTokenAmounts: BigNumber[],
|
||||||
) => SampleResults;
|
) => SampleResults;
|
||||||
|
export type SampleSellsLPHandler = (
|
||||||
|
registryAddress: string,
|
||||||
|
takerToken: string,
|
||||||
|
makerToken: string,
|
||||||
|
takerTokenAmounts: BigNumber[],
|
||||||
|
) => SampleResults;
|
||||||
|
|
||||||
const DUMMY_PROVIDER = {
|
const DUMMY_PROVIDER = {
|
||||||
sendAsync: (...args: any[]): any => {
|
sendAsync: (...args: any[]): any => {
|
||||||
@ -32,10 +38,12 @@ interface Handlers {
|
|||||||
getOrderFillableMakerAssetAmounts: GetOrderFillableAssetAmountHandler;
|
getOrderFillableMakerAssetAmounts: GetOrderFillableAssetAmountHandler;
|
||||||
getOrderFillableTakerAssetAmounts: GetOrderFillableAssetAmountHandler;
|
getOrderFillableTakerAssetAmounts: GetOrderFillableAssetAmountHandler;
|
||||||
sampleSellsFromKyberNetwork: SampleSellsHandler;
|
sampleSellsFromKyberNetwork: SampleSellsHandler;
|
||||||
|
sampleSellsFromLiquidityProviderRegistry: SampleSellsLPHandler;
|
||||||
sampleSellsFromEth2Dai: SampleSellsHandler;
|
sampleSellsFromEth2Dai: SampleSellsHandler;
|
||||||
sampleSellsFromUniswap: SampleSellsHandler;
|
sampleSellsFromUniswap: SampleSellsHandler;
|
||||||
sampleBuysFromEth2Dai: SampleBuysHandler;
|
sampleBuysFromEth2Dai: SampleBuysHandler;
|
||||||
sampleBuysFromUniswap: SampleBuysHandler;
|
sampleBuysFromUniswap: SampleBuysHandler;
|
||||||
|
sampleBuysFromLiquidityProviderRegistry: SampleSellsLPHandler;
|
||||||
}
|
}
|
||||||
|
|
||||||
export class MockSamplerContract extends IERC20BridgeSamplerContract {
|
export class MockSamplerContract extends IERC20BridgeSamplerContract {
|
||||||
@ -119,6 +127,22 @@ export class MockSamplerContract extends IERC20BridgeSamplerContract {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public sampleSellsFromLiquidityProviderRegistry(
|
||||||
|
registryAddress: string,
|
||||||
|
takerToken: string,
|
||||||
|
makerToken: string,
|
||||||
|
takerAssetAmounts: BigNumber[],
|
||||||
|
): ContractFunctionObj<GetOrderFillableAssetAmountResult> {
|
||||||
|
return this._wrapCall(
|
||||||
|
super.sampleSellsFromLiquidityProviderRegistry,
|
||||||
|
this._handlers.sampleSellsFromLiquidityProviderRegistry,
|
||||||
|
registryAddress,
|
||||||
|
takerToken,
|
||||||
|
makerToken,
|
||||||
|
takerAssetAmounts,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
public sampleBuysFromEth2Dai(
|
public sampleBuysFromEth2Dai(
|
||||||
takerToken: string,
|
takerToken: string,
|
||||||
makerToken: string,
|
makerToken: string,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user