diff options
author | Jacob Evans <jacob@dekz.net> | 2018-11-22 12:40:34 +0800 |
---|---|---|
committer | Jacob Evans <jacob@dekz.net> | 2018-12-04 06:13:59 +0800 |
commit | afa24aa122f0217b64f853ec33a8f3813cc80e1f (patch) | |
tree | 141e74fdb3546dfd6995132027177bbb7b1f6e28 | |
parent | a5eb1bcc20d62c222010e838944a084dde0867da (diff) | |
download | dexon-sol-tools-afa24aa122f0217b64f853ec33a8f3813cc80e1f.tar dexon-sol-tools-afa24aa122f0217b64f853ec33a8f3813cc80e1f.tar.gz dexon-sol-tools-afa24aa122f0217b64f853ec33a8f3813cc80e1f.tar.bz2 dexon-sol-tools-afa24aa122f0217b64f853ec33a8f3813cc80e1f.tar.lz dexon-sol-tools-afa24aa122f0217b64f853ec33a8f3813cc80e1f.tar.xz dexon-sol-tools-afa24aa122f0217b64f853ec33a8f3813cc80e1f.tar.zst dexon-sol-tools-afa24aa122f0217b64f853ec33a8f3813cc80e1f.zip |
chore: Work around for Ganache timestamp bug
-rw-r--r-- | packages/contracts/test/extensions/dutch_auction.ts | 31 |
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); |