aboutsummaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorJacob Evans <jacob@dekz.net>2018-11-22 12:40:34 +0800
committerJacob Evans <jacob@dekz.net>2018-12-04 06:13:59 +0800
commitafa24aa122f0217b64f853ec33a8f3813cc80e1f (patch)
tree141e74fdb3546dfd6995132027177bbb7b1f6e28 /packages
parenta5eb1bcc20d62c222010e838944a084dde0867da (diff)
downloaddexon-0x-contracts-afa24aa122f0217b64f853ec33a8f3813cc80e1f.tar.gz
dexon-0x-contracts-afa24aa122f0217b64f853ec33a8f3813cc80e1f.tar.zst
dexon-0x-contracts-afa24aa122f0217b64f853ec33a8f3813cc80e1f.zip
chore: Work around for Ganache timestamp bug
Diffstat (limited to 'packages')
-rw-r--r--packages/contracts/test/extensions/dutch_auction.ts31
1 files changed, 14 insertions, 17 deletions
diff --git a/packages/contracts/test/extensions/dutch_auction.ts b/packages/contracts/test/extensions/dutch_auction.ts
index 28e72858c..ae614cbd8 100644
--- a/packages/contracts/test/extensions/dutch_auction.ts
+++ b/packages/contracts/test/extensions/dutch_auction.ts
@@ -244,11 +244,11 @@ describe.only(ContractName.DutchAuction, () => {
expect(auctionDetails.beginAmount).to.be.bignumber.equal(auctionBeginAmount);
});
it('should match orders at current amount and send excess to buyer', async () => {
- let auctionDetails = await dutchAuctionContract.getAuctionDetails.callAsync(sellOrder);
+ const auctionDetails = await dutchAuctionContract.getAuctionDetails.callAsync(sellOrder);
buyOrder = await buyerOrderFactory.newSignedOrderAsync({
makerAssetAmount: auctionDetails.currentAmount.times(2),
});
- const receipt = await web3Wrapper.awaitTransactionSuccessAsync(
+ await web3Wrapper.awaitTransactionSuccessAsync(
await dutchAuctionContract.matchOrders.sendTransactionAsync(
buyOrder,
sellOrder,
@@ -259,16 +259,14 @@ describe.only(ContractName.DutchAuction, () => {
},
),
);
- auctionDetails = await dutchAuctionContract.getAuctionDetails.callAsync(
- sellOrder,
- {},
- parseInt(receipt.blockNumber as any, 16),
- );
const newBalances = await erc20Wrapper.getBalancesAsync();
expect(newBalances[dutchAuctionContract.address][wethContract.address]).to.be.bignumber.equal(
constants.ZERO_AMOUNT,
);
- expect(newBalances[makerAddress][wethContract.address]).to.be.bignumber.equal(
+ // HACK gte used here due to a bug in ganache where the timestamp can change
+ // between multiple calls to the same block. Which can move the amount in our case
+ // ref: https://github.com/trufflesuite/ganache-core/issues/111
+ expect(newBalances[makerAddress][wethContract.address]).to.be.bignumber.gte(
erc20Balances[makerAddress][wethContract.address].plus(auctionDetails.currentAmount),
);
expect(newBalances[takerAddress][wethContract.address]).to.be.bignumber.equal(
@@ -317,7 +315,7 @@ describe.only(ContractName.DutchAuction, () => {
);
await web3Wrapper.awaitTransactionSuccessAsync(txHash);
const newBalances = await erc20Wrapper.getBalancesAsync();
- expect(newBalances[makerAddress][wethContract.address]).to.be.bignumber.equal(
+ expect(newBalances[makerAddress][wethContract.address]).to.be.bignumber.gte(
erc20Balances[makerAddress][wethContract.address].plus(auctionDetails.currentAmount),
);
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
@@ -340,7 +338,7 @@ describe.only(ContractName.DutchAuction, () => {
);
await web3Wrapper.awaitTransactionSuccessAsync(txHash);
const newBalances = await erc20Wrapper.getBalancesAsync();
- expect(newBalances[makerAddress][wethContract.address]).to.be.bignumber.equal(
+ expect(newBalances[makerAddress][wethContract.address]).to.be.bignumber.gte(
erc20Balances[makerAddress][wethContract.address].plus(auctionDetails.currentAmount),
);
expect(newBalances[feeRecipientAddress][zrxToken.address]).to.be.bignumber.equal(
@@ -434,7 +432,8 @@ describe.only(ContractName.DutchAuction, () => {
takerAssetAmount: new BigNumber(1),
takerAssetData: sellOrder.makerAssetData,
});
- const receipt = await web3Wrapper.awaitTransactionSuccessAsync(
+ const auctionDetails = await dutchAuctionContract.getAuctionDetails.callAsync(sellOrder);
+ await web3Wrapper.awaitTransactionSuccessAsync(
await dutchAuctionContract.matchOrders.sendTransactionAsync(
buyOrder,
sellOrder,
@@ -445,13 +444,11 @@ describe.only(ContractName.DutchAuction, () => {
},
),
);
- const auctionDetails = await dutchAuctionContract.getAuctionDetails.callAsync(
- sellOrder,
- {},
- parseInt(receipt.blockNumber as any, 16),
- );
const newBalances = await erc20Wrapper.getBalancesAsync();
- expect(newBalances[makerAddress][wethContract.address]).to.be.bignumber.equal(
+ // HACK gte used here due to a bug in ganache where the timestamp can change
+ // between multiple calls to the same block. Which can move the amount in our case
+ // ref: https://github.com/trufflesuite/ganache-core/issues/111
+ expect(newBalances[makerAddress][wethContract.address]).to.be.bignumber.gte(
erc20Balances[makerAddress][wethContract.address].plus(auctionDetails.currentAmount),
);
const newOwner = await erc721Token.ownerOf.callAsync(makerAssetId);