diff --git a/test/crowdsale/AllowanceCrowdsale.test.js b/test/crowdsale/AllowanceCrowdsale.test.js index 74f26bbf1..8e57a841b 100644 --- a/test/crowdsale/AllowanceCrowdsale.test.js +++ b/test/crowdsale/AllowanceCrowdsale.test.js @@ -42,14 +42,12 @@ contract('AllowanceCrowdsale', function ([_, investor, wallet, purchaser, tokenW describe('high-level purchase', function () { it('should log purchase', async function () { const { logs } = await this.crowdsale.sendTransaction({ value: value, from: investor }); - expectEvent.inLogs( - logs, - 'TokensPurchased', - { - purchaser: investor, - beneficiary: investor, - value: value, - amount: expectedTokenAmount }); + expectEvent.inLogs(logs, 'TokensPurchased', { + purchaser: investor, + beneficiary: investor, + value: value, + amount: expectedTokenAmount + }); }); it('should assign tokens to sender', async function () { diff --git a/test/crowdsale/Crowdsale.test.js b/test/crowdsale/Crowdsale.test.js index 556855796..f691c9515 100644 --- a/test/crowdsale/Crowdsale.test.js +++ b/test/crowdsale/Crowdsale.test.js @@ -1,10 +1,11 @@ +const expectEvent = require('../helpers/expectEvent'); const { assertRevert } = require('../helpers/assertRevert'); const { ether } = require('../helpers/ether'); const { ethGetBalance } = require('../helpers/web3'); const BigNumber = web3.BigNumber; -const should = require('chai') +require('chai') .use(require('chai-bignumber')(BigNumber)) .should(); @@ -82,12 +83,12 @@ contract('Crowdsale', function ([_, investor, wallet, purchaser]) { describe('high-level purchase', function () { it('should log purchase', async function () { const { logs } = await this.crowdsale.sendTransaction({ value: value, from: investor }); - const event = logs.find(e => e.event === 'TokensPurchased'); - should.exist(event); - event.args.purchaser.should.equal(investor); - event.args.beneficiary.should.equal(investor); - event.args.value.should.be.bignumber.equal(value); - event.args.amount.should.be.bignumber.equal(expectedTokenAmount); + expectEvent.inLogs(logs, 'TokensPurchased', { + purchaser: investor, + beneficiary: investor, + value: value, + amount: expectedTokenAmount + }); }); it('should assign tokens to sender', async function () { @@ -106,12 +107,12 @@ contract('Crowdsale', function ([_, investor, wallet, purchaser]) { describe('low-level purchase', function () { it('should log purchase', async function () { const { logs } = await this.crowdsale.buyTokens(investor, { value: value, from: purchaser }); - const event = logs.find(e => e.event === 'TokensPurchased'); - should.exist(event); - event.args.purchaser.should.equal(purchaser); - event.args.beneficiary.should.equal(investor); - event.args.value.should.be.bignumber.equal(value); - event.args.amount.should.be.bignumber.equal(expectedTokenAmount); + expectEvent.inLogs(logs, 'TokensPurchased', { + purchaser: purchaser, + beneficiary: investor, + value: value, + amount: expectedTokenAmount + }); }); it('should assign tokens to beneficiary', async function () { diff --git a/test/crowdsale/FinalizableCrowdsale.test.js b/test/crowdsale/FinalizableCrowdsale.test.js index 187c67a36..b024fe1d4 100644 --- a/test/crowdsale/FinalizableCrowdsale.test.js +++ b/test/crowdsale/FinalizableCrowdsale.test.js @@ -1,3 +1,4 @@ +const expectEvent = require('../helpers/expectEvent'); const { advanceBlock } = require('../helpers/advanceToBlock'); const { increaseTimeTo, duration } = require('../helpers/increaseTime'); const { latestTime } = require('../helpers/latestTime'); @@ -6,7 +7,7 @@ const { EVMRevert } = require('../helpers/EVMRevert'); const BigNumber = web3.BigNumber; -const should = require('chai') +require('chai') .use(require('chai-bignumber')(BigNumber)) .should(); @@ -50,7 +51,6 @@ contract('FinalizableCrowdsale', function ([_, wallet, anyone]) { it('logs finalized', async function () { await increaseTimeTo(this.afterClosingTime); const { logs } = await this.crowdsale.finalize({ from: anyone }); - const event = logs.find(e => e.event === 'CrowdsaleFinalized'); - should.exist(event); + expectEvent.inLogs(logs, 'CrowdsaleFinalized'); }); }); diff --git a/test/crowdsale/MintedCrowdsale.behavior.js b/test/crowdsale/MintedCrowdsale.behavior.js index f5d61328c..c55850cd9 100644 --- a/test/crowdsale/MintedCrowdsale.behavior.js +++ b/test/crowdsale/MintedCrowdsale.behavior.js @@ -1,8 +1,9 @@ +const expectEvent = require('../helpers/expectEvent'); const { ethGetBalance } = require('../helpers/web3'); const BigNumber = web3.BigNumber; -const should = require('chai') +require('chai') .use(require('chai-bignumber')(BigNumber)) .should(); @@ -20,12 +21,12 @@ function shouldBehaveLikeMintedCrowdsale ([_, investor, wallet, purchaser], rate describe('high-level purchase', function () { it('should log purchase', async function () { const { logs } = await this.crowdsale.sendTransaction({ value: value, from: investor }); - const event = logs.find(e => e.event === 'TokensPurchased'); - should.exist(event); - event.args.purchaser.should.equal(investor); - event.args.beneficiary.should.equal(investor); - event.args.value.should.be.bignumber.equal(value); - event.args.amount.should.be.bignumber.equal(expectedTokenAmount); + expectEvent.inLogs(logs, 'TokensPurchased', { + purchaser: investor, + beneficiary: investor, + value: value, + amount: expectedTokenAmount + }); }); it('should assign tokens to sender', async function () { diff --git a/test/payment/Escrow.behavior.js b/test/payment/Escrow.behavior.js index 761aecd89..fce4bd692 100644 --- a/test/payment/Escrow.behavior.js +++ b/test/payment/Escrow.behavior.js @@ -31,10 +31,11 @@ function shouldBehaveLikeEscrow (primary, [payee1, payee2]) { }); it('emits a deposited event', async function () { - const receipt = await this.escrow.deposit(payee1, { from: primary, value: amount }); - - const event = expectEvent.inLogs(receipt.logs, 'Deposited', { payee: payee1 }); - event.args.weiAmount.should.be.bignumber.equal(amount); + const { logs } = await this.escrow.deposit(payee1, { from: primary, value: amount }); + expectEvent.inLogs(logs, 'Deposited', { + payee: payee1, + weiAmount: amount + }); }); it('can add multiple deposits on a single account', async function () { @@ -83,10 +84,11 @@ function shouldBehaveLikeEscrow (primary, [payee1, payee2]) { it('emits a withdrawn event', async function () { await this.escrow.deposit(payee1, { from: primary, value: amount }); - const receipt = await this.escrow.withdraw(payee1, { from: primary }); - - const event = expectEvent.inLogs(receipt.logs, 'Withdrawn', { payee: payee1 }); - event.args.weiAmount.should.be.bignumber.equal(amount); + const { logs } = await this.escrow.withdraw(payee1, { from: primary }); + expectEvent.inLogs(logs, 'Withdrawn', { + payee: payee1, + weiAmount: amount + }); }); }); }); diff --git a/test/payment/RefundEscrow.test.js b/test/payment/RefundEscrow.test.js index e412816c4..c499f4009 100644 --- a/test/payment/RefundEscrow.test.js +++ b/test/payment/RefundEscrow.test.js @@ -53,9 +53,8 @@ contract('RefundEscrow', function ([_, primary, beneficiary, refundee1, refundee it('only the primary account can enter closed state', async function () { await expectThrow(this.escrow.close({ from: beneficiary }), EVMRevert); - const receipt = await this.escrow.close({ from: primary }); - - expectEvent.inLogs(receipt.logs, 'Closed'); + const { logs } = await this.escrow.close({ from: primary }); + expectEvent.inLogs(logs, 'Closed'); }); context('closed state', function () { @@ -93,9 +92,8 @@ contract('RefundEscrow', function ([_, primary, beneficiary, refundee1, refundee it('only the primary account can enter refund state', async function () { await expectThrow(this.escrow.enableRefunds({ from: beneficiary }), EVMRevert); - const receipt = await this.escrow.enableRefunds({ from: primary }); - - expectEvent.inLogs(receipt.logs, 'RefundsEnabled'); + const { logs } = await this.escrow.enableRefunds({ from: primary }); + expectEvent.inLogs(logs, 'RefundsEnabled'); }); context('refund state', function () { diff --git a/test/token/ERC20/ERC20.test.js b/test/token/ERC20/ERC20.test.js index 3662a41a7..283e8752a 100644 --- a/test/token/ERC20/ERC20.test.js +++ b/test/token/ERC20/ERC20.test.js @@ -62,12 +62,11 @@ contract('ERC20', function ([_, owner, recipient, anotherAccount]) { it('emits a transfer event', async function () { const { logs } = await this.token.transfer(to, amount, { from: owner }); - const event = expectEvent.inLogs(logs, 'Transfer', { + expectEvent.inLogs(logs, 'Transfer', { from: owner, to: to, + value: amount }); - - event.args.value.should.be.bignumber.equal(amount); }); }); }); @@ -91,11 +90,11 @@ contract('ERC20', function ([_, owner, recipient, anotherAccount]) { it('emits an approval event', async function () { const { logs } = await this.token.approve(spender, amount, { from: owner }); - logs.length.should.equal(1); - logs[0].event.should.equal('Approval'); - logs[0].args.owner.should.equal(owner); - logs[0].args.spender.should.equal(spender); - logs[0].args.value.should.be.bignumber.equal(amount); + expectEvent.inLogs(logs, 'Approval', { + owner: owner, + spender: spender, + value: amount + }); }); describe('when there was no approved amount before', function () { @@ -125,11 +124,11 @@ contract('ERC20', function ([_, owner, recipient, anotherAccount]) { it('emits an approval event', async function () { const { logs } = await this.token.approve(spender, amount, { from: owner }); - logs.length.should.equal(1); - logs[0].event.should.equal('Approval'); - logs[0].args.owner.should.equal(owner); - logs[0].args.spender.should.equal(spender); - logs[0].args.value.should.be.bignumber.equal(amount); + expectEvent.inLogs(logs, 'Approval', { + owner: owner, + spender: spender, + value: amount + }); }); describe('when there was no approved amount before', function () { @@ -195,11 +194,11 @@ contract('ERC20', function ([_, owner, recipient, anotherAccount]) { it('emits a transfer event', async function () { const { logs } = await this.token.transferFrom(owner, to, amount, { from: spender }); - logs.length.should.equal(1); - logs[0].event.should.equal('Transfer'); - logs[0].args.from.should.equal(owner); - logs[0].args.to.should.equal(to); - logs[0].args.value.should.be.bignumber.equal(amount); + expectEvent.inLogs(logs, 'Transfer', { + from: owner, + to: to, + value: amount + }); }); }); @@ -270,11 +269,11 @@ contract('ERC20', function ([_, owner, recipient, anotherAccount]) { it('emits an approval event', async function () { const { logs } = await this.token.decreaseAllowance(spender, approvedAmount, { from: owner }); - logs.length.should.equal(1); - logs[0].event.should.equal('Approval'); - logs[0].args.owner.should.equal(owner); - logs[0].args.spender.should.equal(spender); - logs[0].args.value.should.be.bignumber.equal(0); + expectEvent.inLogs(logs, 'Approval', { + owner: owner, + spender: spender, + value: 0 + }); }); it('decreases the spender allowance subtracting the requested amount', async function () { @@ -327,11 +326,11 @@ contract('ERC20', function ([_, owner, recipient, anotherAccount]) { it('emits an approval event', async function () { const { logs } = await this.token.increaseAllowance(spender, amount, { from: owner }); - logs.length.should.equal(1); - logs[0].event.should.equal('Approval'); - logs[0].args.owner.should.equal(owner); - logs[0].args.spender.should.equal(spender); - logs[0].args.value.should.be.bignumber.equal(amount); + expectEvent.inLogs(logs, 'Approval', { + owner: owner, + spender: spender, + value: amount + }); }); describe('when there was no approved amount before', function () { @@ -361,11 +360,11 @@ contract('ERC20', function ([_, owner, recipient, anotherAccount]) { it('emits an approval event', async function () { const { logs } = await this.token.increaseAllowance(spender, amount, { from: owner }); - logs.length.should.equal(1); - logs[0].event.should.equal('Approval'); - logs[0].args.owner.should.equal(owner); - logs[0].args.spender.should.equal(spender); - logs[0].args.value.should.be.bignumber.equal(amount); + expectEvent.inLogs(logs, 'Approval', { + owner: owner, + spender: spender, + value: amount + }); }); describe('when there was no approved amount before', function () { diff --git a/test/token/ERC20/ERC20Pausable.test.js b/test/token/ERC20/ERC20Pausable.test.js index fa733a3f6..a524e2442 100644 --- a/test/token/ERC20/ERC20Pausable.test.js +++ b/test/token/ERC20/ERC20Pausable.test.js @@ -1,3 +1,4 @@ +const expectEvent = require('../../helpers/expectEvent'); const { assertRevert } = require('../../helpers/assertRevert'); const ERC20PausableMock = artifacts.require('ERC20PausableMock'); @@ -30,8 +31,7 @@ contract('ERC20Pausable', function ([_, pauser, otherPauser, recipient, anotherA it('emits a Pause event', async function () { const { logs } = await this.token.pause({ from }); - logs.length.should.equal(1); - logs[0].event.should.equal('Paused'); + expectEvent.inLogs(logs, 'Paused'); }); }); @@ -72,8 +72,7 @@ contract('ERC20Pausable', function ([_, pauser, otherPauser, recipient, anotherA it('emits an Unpause event', async function () { const { logs } = await this.token.unpause({ from }); - logs.length.should.equal(1); - logs[0].event.should.equal('Unpaused'); + expectEvent.inLogs(logs, 'Unpaused'); }); }); diff --git a/test/token/ERC20/behaviors/ERC20Burnable.behavior.js b/test/token/ERC20/behaviors/ERC20Burnable.behavior.js index cf0190046..9c7bada7a 100644 --- a/test/token/ERC20/behaviors/ERC20Burnable.behavior.js +++ b/test/token/ERC20/behaviors/ERC20Burnable.behavior.js @@ -29,10 +29,11 @@ function shouldBehaveLikeERC20Burnable (owner, initialBalance, [burner]) { }); it('emits a transfer event', async function () { - const event = expectEvent.inLogs(this.logs, 'Transfer'); - event.args.from.should.equal(owner); - event.args.to.should.equal(ZERO_ADDRESS); - event.args.value.should.be.bignumber.equal(amount); + expectEvent.inLogs(this.logs, 'Transfer', { + from: owner, + to: ZERO_ADDRESS, + value: amount + }); }); } }); @@ -74,10 +75,11 @@ function shouldBehaveLikeERC20Burnable (owner, initialBalance, [burner]) { }); it('emits a transfer event', async function () { - const event = expectEvent.inLogs(this.logs, 'Transfer'); - event.args.from.should.equal(owner); - event.args.to.should.equal(ZERO_ADDRESS); - event.args.value.should.be.bignumber.equal(amount); + expectEvent.inLogs(this.logs, 'Transfer', { + from: owner, + to: ZERO_ADDRESS, + value: amount + }); }); } }); diff --git a/test/token/ERC20/behaviors/ERC20Mintable.behavior.js b/test/token/ERC20/behaviors/ERC20Mintable.behavior.js index 16126d99a..07b3837b0 100644 --- a/test/token/ERC20/behaviors/ERC20Mintable.behavior.js +++ b/test/token/ERC20/behaviors/ERC20Mintable.behavior.js @@ -35,11 +35,11 @@ function shouldBehaveLikeERC20Mintable (minter, [anyone]) { }); it('emits a mint and a transfer event', async function () { - const transferEvent = expectEvent.inLogs(this.logs, 'Transfer', { + expectEvent.inLogs(this.logs, 'Transfer', { from: ZERO_ADDRESS, to: anyone, + value: amount }); - transferEvent.args.value.should.be.bignumber.equal(amount); }); } }); diff --git a/test/token/ERC721/ERC721.behavior.js b/test/token/ERC721/ERC721.behavior.js index ecdc3352f..d2cefe743 100644 --- a/test/token/ERC721/ERC721.behavior.js +++ b/test/token/ERC721/ERC721.behavior.js @@ -1,3 +1,4 @@ +const expectEvent = require('../../helpers/expectEvent'); const { shouldSupportInterfaces } = require('../../introspection/SupportsInterface.behavior'); const { assertRevert } = require('../../helpers/assertRevert'); const { decodeLogs } = require('../../helpers/decodeLogs'); @@ -88,19 +89,19 @@ function shouldBehaveLikeERC721 ( if (approved) { it('emit only a transfer event', async function () { - logs.length.should.be.equal(1); - logs[0].event.should.be.equal('Transfer'); - logs[0].args.from.should.be.equal(owner); - logs[0].args.to.should.be.equal(this.toWhom); - logs[0].args.tokenId.should.be.bignumber.equal(tokenId); + expectEvent.inLogs(logs, 'Transfer', { + from: owner, + to: this.toWhom, + tokenId: tokenId + }); }); } else { it('emits only a transfer event', async function () { - logs.length.should.be.equal(1); - logs[0].event.should.be.equal('Transfer'); - logs[0].args.from.should.be.equal(owner); - logs[0].args.to.should.be.equal(this.toWhom); - logs[0].args.tokenId.should.be.bignumber.equal(tokenId); + expectEvent.inLogs(logs, 'Transfer', { + from: owner, + to: this.toWhom, + tokenId: tokenId + }); }); } @@ -161,11 +162,11 @@ function shouldBehaveLikeERC721 ( }); it('emits only a transfer event', async function () { - logs.length.should.be.equal(1); - logs[0].event.should.be.equal('Transfer'); - logs[0].args.from.should.be.equal(owner); - logs[0].args.to.should.be.equal(owner); - logs[0].args.tokenId.should.be.bignumber.equal(tokenId); + expectEvent.inLogs(logs, 'Transfer', { + from: owner, + to: owner, + tokenId: tokenId + }); }); it('keeps the owner balance', async function () { @@ -337,11 +338,11 @@ function shouldBehaveLikeERC721 ( const itEmitsApprovalEvent = function (address) { it('emits an approval event', async function () { - logs.length.should.be.equal(1); - logs[0].event.should.be.equal('Approval'); - logs[0].args.owner.should.be.equal(owner); - logs[0].args.approved.should.be.equal(address); - logs[0].args.tokenId.should.be.bignumber.equal(tokenId); + expectEvent.inLogs(logs, 'Approval', { + owner: owner, + approved: address, + tokenId: tokenId + }); }); }; @@ -447,11 +448,11 @@ function shouldBehaveLikeERC721 ( it('emits an approval event', async function () { const { logs } = await this.token.setApprovalForAll(operator, true, { from: owner }); - logs.length.should.be.equal(1); - logs[0].event.should.be.equal('ApprovalForAll'); - logs[0].args.owner.should.be.equal(owner); - logs[0].args.operator.should.be.equal(operator); - logs[0].args.approved.should.equal(true); + expectEvent.inLogs(logs, 'ApprovalForAll', { + owner: owner, + operator: operator, + approved: true + }); }); }); @@ -469,11 +470,11 @@ function shouldBehaveLikeERC721 ( it('emits an approval event', async function () { const { logs } = await this.token.setApprovalForAll(operator, true, { from: owner }); - logs.length.should.be.equal(1); - logs[0].event.should.be.equal('ApprovalForAll'); - logs[0].args.owner.should.be.equal(owner); - logs[0].args.operator.should.be.equal(operator); - logs[0].args.approved.should.equal(true); + expectEvent.inLogs(logs, 'ApprovalForAll', { + owner: owner, + operator: operator, + approved: true + }); }); it('can unset the operator approval', async function () { @@ -497,11 +498,11 @@ function shouldBehaveLikeERC721 ( it('emits an approval event', async function () { const { logs } = await this.token.setApprovalForAll(operator, true, { from: owner }); - logs.length.should.be.equal(1); - logs[0].event.should.be.equal('ApprovalForAll'); - logs[0].args.owner.should.be.equal(owner); - logs[0].args.operator.should.be.equal(operator); - logs[0].args.approved.should.equal(true); + expectEvent.inLogs(logs, 'ApprovalForAll', { + owner: owner, + operator: operator, + approved: true + }); }); }); }); diff --git a/test/token/ERC721/ERC721MintBurn.behavior.js b/test/token/ERC721/ERC721MintBurn.behavior.js index 31db1d176..a4289d27a 100644 --- a/test/token/ERC721/ERC721MintBurn.behavior.js +++ b/test/token/ERC721/ERC721MintBurn.behavior.js @@ -42,11 +42,11 @@ function shouldBehaveLikeMintAndBurnERC721 ( }); it('emits a transfer and minted event', async function () { - await expectEvent.inLogs(logs, 'Transfer', { + expectEvent.inLogs(logs, 'Transfer', { from: ZERO_ADDRESS, to: newOwner, + tokenId: thirdTokenId }); - logs[0].args.tokenId.should.be.bignumber.equal(thirdTokenId); }); }); @@ -87,11 +87,11 @@ function shouldBehaveLikeMintAndBurnERC721 ( }); it('emits a burn event', async function () { - logs.length.should.be.equal(1); - logs[0].event.should.be.equal('Transfer'); - logs[0].args.from.should.be.equal(owner); - logs[0].args.to.should.be.equal(ZERO_ADDRESS); - logs[0].args.tokenId.should.be.bignumber.equal(tokenId); + expectEvent.inLogs(logs, 'Transfer', { + from: owner, + to: ZERO_ADDRESS, + tokenId: tokenId + }); }); });