Browse Source

Replace chai.should with chai.expect (#1780)

* changed exxpect to expect wherever applicable

* Merged with latest branch

* Updated merkleTree helper to latest master branch

* Made linting fixes

* Fix for test build

* updated for Coverage

* Updated Address.test.js

* Undo package-lock changes.
Yohann Pereira 6 years ago
parent
commit
489d2e85f1
57 changed files with 564 additions and 453 deletions
  1. 1 1
      contracts/utils/Address.sol
  2. 9 7
      test/access/Roles.test.js
  3. 9 7
      test/behaviors/access/roles/PublicRole.behavior.js
  4. 7 5
      test/crowdsale/AllowanceCrowdsale.test.js
  5. 5 3
      test/crowdsale/CappedCrowdsale.test.js
  6. 6 4
      test/crowdsale/Crowdsale.test.js
  7. 13 11
      test/crowdsale/IncreasingPriceCrowdsale.test.js
  8. 5 3
      test/crowdsale/IndividuallyCappedCrowdsale.test.js
  9. 4 2
      test/crowdsale/MintedCrowdsale.behavior.js
  10. 3 1
      test/crowdsale/MintedCrowdsale.test.js
  11. 6 4
      test/crowdsale/PostDeliveryCrowdsale.test.js
  12. 4 2
      test/crowdsale/RefundableCrowdsale.test.js
  13. 8 6
      test/crowdsale/RefundablePostDeliveryCrowdsale.test.js
  14. 11 9
      test/crowdsale/TimedCrowdsale.test.js
  15. 13 10
      test/cryptography/ECDSA.test.js
  16. 5 3
      test/cryptography/MerkleProof.test.js
  17. 9 7
      test/drafts/Counters.test.js
  18. 4 2
      test/drafts/ERC1046/ERC20Metadata.test.js
  19. 14 12
      test/drafts/ERC20Migrator.test.js
  20. 30 28
      test/drafts/ERC20Snapshot.test.js
  21. 26 23
      test/drafts/SignatureBouncer.test.js
  22. 9 7
      test/drafts/SignedSafeMath.test.js
  23. 5 3
      test/drafts/Strings.test.js
  24. 17 15
      test/drafts/TokenVesting.test.js
  25. 12 10
      test/examples/SampleCrowdsale.test.js
  26. 6 4
      test/examples/SimpleToken.test.js
  27. 19 17
      test/introspection/ERC165Checker.test.js
  28. 12 10
      test/introspection/ERC1820Implementer.test.js
  29. 5 3
      test/introspection/SupportsInterface.behavior.js
  30. 11 9
      test/lifecycle/Pausable.test.js
  31. 9 7
      test/math/Math.test.js
  32. 12 10
      test/math/SafeMath.test.js
  33. 7 5
      test/ownership/Ownable.behavior.js
  34. 4 2
      test/ownership/Secondary.test.js
  35. 14 12
      test/payment/PaymentSplitter.test.js
  36. 6 4
      test/payment/PullPayment.test.js
  37. 12 10
      test/payment/escrow/Escrow.behavior.js
  38. 7 5
      test/payment/escrow/RefundEscrow.test.js
  39. 15 14
      test/token/ERC20/ERC20.behavior.js
  40. 17 16
      test/token/ERC20/ERC20.test.js
  41. 5 3
      test/token/ERC20/ERC20Detailed.test.js
  42. 21 19
      test/token/ERC20/ERC20Pausable.test.js
  43. 8 6
      test/token/ERC20/TokenTimelock.test.js
  44. 5 3
      test/token/ERC20/behaviors/ERC20Burnable.behavior.js
  45. 4 2
      test/token/ERC20/behaviors/ERC20Capped.behavior.js
  46. 3 1
      test/token/ERC20/behaviors/ERC20Mintable.behavior.js
  47. 19 18
      test/token/ERC721/ERC721.behavior.js
  48. 6 4
      test/token/ERC721/ERC721.test.js
  49. 24 21
      test/token/ERC721/ERC721Full.test.js
  50. 3 1
      test/token/ERC721/ERC721Holder.test.js
  51. 5 3
      test/token/ERC721/ERC721MintBurn.behavior.js
  52. 7 5
      test/token/ERC721/ERC721PausedToken.behavior.js
  53. 10 8
      test/token/ERC777/ERC777.behavior.js
  54. 30 28
      test/token/ERC777/ERC777.test.js
  55. 6 5
      test/utils/Address.test.js
  56. 14 12
      test/utils/Arrays.test.js
  57. 3 1
      test/utils/ReentrancyGuard.test.js

+ 1 - 1
contracts/utils/Address.sol

@@ -1,7 +1,7 @@
 pragma solidity ^0.5.0;
 pragma solidity ^0.5.0;
 
 
 /**
 /**
- * @dev Collection of functions related to the address type,
+ * @dev Collection of functions related to the address type
  */
  */
 library Address {
 library Address {
     /**
     /**

+ 9 - 7
test/access/Roles.test.js

@@ -1,6 +1,8 @@
 const { expectRevert, constants } = require('openzeppelin-test-helpers');
 const { expectRevert, constants } = require('openzeppelin-test-helpers');
 const { ZERO_ADDRESS } = constants;
 const { ZERO_ADDRESS } = constants;
 
 
+const { expect } = require('chai');
+
 const RolesMock = artifacts.require('RolesMock');
 const RolesMock = artifacts.require('RolesMock');
 
 
 contract('Roles', function ([_, authorized, otherAuthorized, other]) {
 contract('Roles', function ([_, authorized, otherAuthorized, other]) {
@@ -14,16 +16,16 @@ contract('Roles', function ([_, authorized, otherAuthorized, other]) {
 
 
   context('initially', function () {
   context('initially', function () {
     it('doesn\'t pre-assign roles', async function () {
     it('doesn\'t pre-assign roles', async function () {
-      (await this.roles.has(authorized)).should.equal(false);
-      (await this.roles.has(otherAuthorized)).should.equal(false);
-      (await this.roles.has(other)).should.equal(false);
+      expect(await this.roles.has(authorized)).to.equal(false);
+      expect(await this.roles.has(otherAuthorized)).to.equal(false);
+      expect(await this.roles.has(other)).to.equal(false);
     });
     });
 
 
     describe('adding roles', function () {
     describe('adding roles', function () {
       it('adds roles to a single account', async function () {
       it('adds roles to a single account', async function () {
         await this.roles.add(authorized);
         await this.roles.add(authorized);
-        (await this.roles.has(authorized)).should.equal(true);
-        (await this.roles.has(other)).should.equal(false);
+        expect(await this.roles.has(authorized)).to.equal(true);
+        expect(await this.roles.has(other)).to.equal(false);
       });
       });
 
 
       it('reverts when adding roles to an already assigned account', async function () {
       it('reverts when adding roles to an already assigned account', async function () {
@@ -46,8 +48,8 @@ contract('Roles', function ([_, authorized, otherAuthorized, other]) {
     describe('removing roles', function () {
     describe('removing roles', function () {
       it('removes a single role', async function () {
       it('removes a single role', async function () {
         await this.roles.remove(authorized);
         await this.roles.remove(authorized);
-        (await this.roles.has(authorized)).should.equal(false);
-        (await this.roles.has(otherAuthorized)).should.equal(true);
+        expect(await this.roles.has(authorized)).to.equal(false);
+        expect(await this.roles.has(otherAuthorized)).to.equal(true);
       });
       });
 
 
       it('reverts when removing unassigned roles', async function () {
       it('reverts when removing unassigned roles', async function () {

+ 9 - 7
test/behaviors/access/roles/PublicRole.behavior.js

@@ -1,6 +1,8 @@
 const { expectRevert, constants, expectEvent } = require('openzeppelin-test-helpers');
 const { expectRevert, constants, expectEvent } = require('openzeppelin-test-helpers');
 const { ZERO_ADDRESS } = constants;
 const { ZERO_ADDRESS } = constants;
 
 
+const { expect } = require('chai');
+
 function capitalize (str) {
 function capitalize (str) {
   return str.replace(/\b\w/g, l => l.toUpperCase());
   return str.replace(/\b\w/g, l => l.toUpperCase());
 }
 }
@@ -25,9 +27,9 @@ function shouldBehaveLikePublicRole (authorized, otherAuthorized, [other], rolen
 
 
   describe('should behave like public role', function () {
   describe('should behave like public role', function () {
     beforeEach('check preconditions', async function () {
     beforeEach('check preconditions', async function () {
-      (await this.contract[`is${rolename}`](authorized)).should.equal(true);
-      (await this.contract[`is${rolename}`](otherAuthorized)).should.equal(true);
-      (await this.contract[`is${rolename}`](other)).should.equal(false);
+      expect(await this.contract[`is${rolename}`](authorized)).to.equal(true);
+      expect(await this.contract[`is${rolename}`](otherAuthorized)).to.equal(true);
+      expect(await this.contract[`is${rolename}`](other)).to.equal(false);
     });
     });
 
 
     if (manager === undefined) { // Managed roles are only assigned by the manager, and none are set at construction
     if (manager === undefined) { // Managed roles are only assigned by the manager, and none are set at construction
@@ -70,7 +72,7 @@ function shouldBehaveLikePublicRole (authorized, otherAuthorized, [other], rolen
       context(`from ${manager ? 'the manager' : 'a role-haver'} account`, function () {
       context(`from ${manager ? 'the manager' : 'a role-haver'} account`, function () {
         it('adds role to a new account', async function () {
         it('adds role to a new account', async function () {
           await this.contract[`add${rolename}`](other, { from });
           await this.contract[`add${rolename}`](other, { from });
-          (await this.contract[`is${rolename}`](other)).should.equal(true);
+          expect(await this.contract[`is${rolename}`](other)).to.equal(true);
         });
         });
 
 
         it(`emits a ${rolename}Added event`, async function () {
         it(`emits a ${rolename}Added event`, async function () {
@@ -99,8 +101,8 @@ function shouldBehaveLikePublicRole (authorized, otherAuthorized, [other], rolen
       context(`from ${manager ? 'the manager' : 'any'} account`, function () {
       context(`from ${manager ? 'the manager' : 'any'} account`, function () {
         it('removes role from an already assigned account', async function () {
         it('removes role from an already assigned account', async function () {
           await this.contract[`remove${rolename}`](authorized, { from });
           await this.contract[`remove${rolename}`](authorized, { from });
-          (await this.contract[`is${rolename}`](authorized)).should.equal(false);
-          (await this.contract[`is${rolename}`](otherAuthorized)).should.equal(true);
+          expect(await this.contract[`is${rolename}`](authorized)).to.equal(false);
+          expect(await this.contract[`is${rolename}`](otherAuthorized)).to.equal(true);
         });
         });
 
 
         it(`emits a ${rolename}Removed event`, async function () {
         it(`emits a ${rolename}Removed event`, async function () {
@@ -125,7 +127,7 @@ function shouldBehaveLikePublicRole (authorized, otherAuthorized, [other], rolen
     describe('renouncing roles', function () {
     describe('renouncing roles', function () {
       it('renounces an assigned role', async function () {
       it('renounces an assigned role', async function () {
         await this.contract[`renounce${rolename}`]({ from: authorized });
         await this.contract[`renounce${rolename}`]({ from: authorized });
-        (await this.contract[`is${rolename}`](authorized)).should.equal(false);
+        expect(await this.contract[`is${rolename}`](authorized)).to.equal(false);
       });
       });
 
 
       it(`emits a ${rolename}Removed event`, async function () {
       it(`emits a ${rolename}Removed event`, async function () {

+ 7 - 5
test/crowdsale/AllowanceCrowdsale.test.js

@@ -1,6 +1,8 @@
 const { balance, BN, constants, ether, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 const { balance, BN, constants, ether, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 const { ZERO_ADDRESS } = constants;
 const { ZERO_ADDRESS } = constants;
 
 
+const { expect } = require('chai');
+
 const AllowanceCrowdsaleImpl = artifacts.require('AllowanceCrowdsaleImpl');
 const AllowanceCrowdsaleImpl = artifacts.require('AllowanceCrowdsaleImpl');
 const SimpleToken = artifacts.require('SimpleToken');
 const SimpleToken = artifacts.require('SimpleToken');
 
 
@@ -18,7 +20,7 @@ contract('AllowanceCrowdsale', function ([_, investor, wallet, purchaser, tokenW
 
 
   describe('accepting payments', function () {
   describe('accepting payments', function () {
     it('should have token wallet', async function () {
     it('should have token wallet', async function () {
-      (await this.crowdsale.tokenWallet()).should.be.equal(tokenWallet);
+      expect(await this.crowdsale.tokenWallet()).to.equal(tokenWallet);
     });
     });
 
 
     it('should accept sends', async function () {
     it('should accept sends', async function () {
@@ -43,13 +45,13 @@ contract('AllowanceCrowdsale', function ([_, investor, wallet, purchaser, tokenW
 
 
     it('should assign tokens to sender', async function () {
     it('should assign tokens to sender', async function () {
       await this.crowdsale.sendTransaction({ value: value, from: investor });
       await this.crowdsale.sendTransaction({ value: value, from: investor });
-      (await this.token.balanceOf(investor)).should.be.bignumber.equal(expectedTokenAmount);
+      expect(await this.token.balanceOf(investor)).to.be.bignumber.equal(expectedTokenAmount);
     });
     });
 
 
     it('should forward funds to wallet', async function () {
     it('should forward funds to wallet', async function () {
       const balanceTracker = await balance.tracker(wallet);
       const balanceTracker = await balance.tracker(wallet);
       await this.crowdsale.sendTransaction({ value, from: investor });
       await this.crowdsale.sendTransaction({ value, from: investor });
-      (await balanceTracker.delta()).should.be.bignumber.equal(value);
+      expect(await balanceTracker.delta()).to.be.bignumber.equal(value);
     });
     });
   });
   });
 
 
@@ -57,7 +59,7 @@ contract('AllowanceCrowdsale', function ([_, investor, wallet, purchaser, tokenW
     it('should report correct allowance left', async function () {
     it('should report correct allowance left', async function () {
       const remainingAllowance = tokenAllowance.sub(expectedTokenAmount);
       const remainingAllowance = tokenAllowance.sub(expectedTokenAmount);
       await this.crowdsale.buyTokens(investor, { value: value, from: purchaser });
       await this.crowdsale.buyTokens(investor, { value: value, from: purchaser });
-      (await this.crowdsale.remainingTokens()).should.be.bignumber.equal(remainingAllowance);
+      expect(await this.crowdsale.remainingTokens()).to.be.bignumber.equal(remainingAllowance);
     });
     });
 
 
     context('when the allowance is larger than the token amount', function () {
     context('when the allowance is larger than the token amount', function () {
@@ -67,7 +69,7 @@ contract('AllowanceCrowdsale', function ([_, investor, wallet, purchaser, tokenW
       });
       });
 
 
       it('should report the amount instead of the allowance', async function () {
       it('should report the amount instead of the allowance', async function () {
-        (await this.crowdsale.remainingTokens()).should.be.bignumber.equal(await this.token.balanceOf(tokenWallet));
+        expect(await this.crowdsale.remainingTokens()).to.be.bignumber.equal(await this.token.balanceOf(tokenWallet));
       });
       });
     });
     });
   });
   });

+ 5 - 3
test/crowdsale/CappedCrowdsale.test.js

@@ -1,5 +1,7 @@
 const { BN, ether, expectRevert } = require('openzeppelin-test-helpers');
 const { BN, ether, expectRevert } = require('openzeppelin-test-helpers');
 
 
+const { expect } = require('chai');
+
 const CappedCrowdsaleImpl = artifacts.require('CappedCrowdsaleImpl');
 const CappedCrowdsaleImpl = artifacts.require('CappedCrowdsaleImpl');
 const SimpleToken = artifacts.require('SimpleToken');
 const SimpleToken = artifacts.require('SimpleToken');
 
 
@@ -44,17 +46,17 @@ contract('CappedCrowdsale', function ([_, wallet]) {
     describe('ending', function () {
     describe('ending', function () {
       it('should not reach cap if sent under cap', async function () {
       it('should not reach cap if sent under cap', async function () {
         await this.crowdsale.send(lessThanCap);
         await this.crowdsale.send(lessThanCap);
-        (await this.crowdsale.capReached()).should.equal(false);
+        expect(await this.crowdsale.capReached()).to.equal(false);
       });
       });
 
 
       it('should not reach cap if sent just under cap', async function () {
       it('should not reach cap if sent just under cap', async function () {
         await this.crowdsale.send(cap.subn(1));
         await this.crowdsale.send(cap.subn(1));
-        (await this.crowdsale.capReached()).should.equal(false);
+        expect(await this.crowdsale.capReached()).to.equal(false);
       });
       });
 
 
       it('should reach cap if cap sent', async function () {
       it('should reach cap if cap sent', async function () {
         await this.crowdsale.send(cap);
         await this.crowdsale.send(cap);
-        (await this.crowdsale.capReached()).should.equal(true);
+        expect(await this.crowdsale.capReached()).to.equal(true);
       });
       });
     });
     });
   });
   });

+ 6 - 4
test/crowdsale/Crowdsale.test.js

@@ -1,6 +1,8 @@
 const { balance, BN, constants, ether, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 const { balance, BN, constants, ether, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 const { ZERO_ADDRESS } = constants;
 const { ZERO_ADDRESS } = constants;
 
 
+const { expect } = require('chai');
+
 const Crowdsale = artifacts.require('CrowdsaleMock');
 const Crowdsale = artifacts.require('CrowdsaleMock');
 const SimpleToken = artifacts.require('SimpleToken');
 const SimpleToken = artifacts.require('SimpleToken');
 
 
@@ -86,13 +88,13 @@ contract('Crowdsale', function ([_, investor, wallet, purchaser]) {
 
 
         it('should assign tokens to sender', async function () {
         it('should assign tokens to sender', async function () {
           await this.crowdsale.sendTransaction({ value: value, from: investor });
           await this.crowdsale.sendTransaction({ value: value, from: investor });
-          (await this.token.balanceOf(investor)).should.be.bignumber.equal(expectedTokenAmount);
+          expect(await this.token.balanceOf(investor)).to.be.bignumber.equal(expectedTokenAmount);
         });
         });
 
 
         it('should forward funds to wallet', async function () {
         it('should forward funds to wallet', async function () {
           const balanceTracker = await balance.tracker(wallet);
           const balanceTracker = await balance.tracker(wallet);
           await this.crowdsale.sendTransaction({ value, from: investor });
           await this.crowdsale.sendTransaction({ value, from: investor });
-          (await balanceTracker.delta()).should.be.bignumber.equal(value);
+          expect(await balanceTracker.delta()).to.be.bignumber.equal(value);
         });
         });
       });
       });
 
 
@@ -109,13 +111,13 @@ contract('Crowdsale', function ([_, investor, wallet, purchaser]) {
 
 
         it('should assign tokens to beneficiary', async function () {
         it('should assign tokens to beneficiary', async function () {
           await this.crowdsale.buyTokens(investor, { value, from: purchaser });
           await this.crowdsale.buyTokens(investor, { value, from: purchaser });
-          (await this.token.balanceOf(investor)).should.be.bignumber.equal(expectedTokenAmount);
+          expect(await this.token.balanceOf(investor)).to.be.bignumber.equal(expectedTokenAmount);
         });
         });
 
 
         it('should forward funds to wallet', async function () {
         it('should forward funds to wallet', async function () {
           const balanceTracker = await balance.tracker(wallet);
           const balanceTracker = await balance.tracker(wallet);
           await this.crowdsale.buyTokens(investor, { value, from: purchaser });
           await this.crowdsale.buyTokens(investor, { value, from: purchaser });
-          (await balanceTracker.delta()).should.be.bignumber.equal(value);
+          expect(await balanceTracker.delta()).to.be.bignumber.equal(value);
         });
         });
       });
       });
     });
     });

+ 13 - 11
test/crowdsale/IncreasingPriceCrowdsale.test.js

@@ -1,5 +1,7 @@
 const { BN, ether, expectRevert, time } = require('openzeppelin-test-helpers');
 const { BN, ether, expectRevert, time } = require('openzeppelin-test-helpers');
 
 
+const { expect } = require('chai');
+
 const IncreasingPriceCrowdsaleImpl = artifacts.require('IncreasingPriceCrowdsaleImpl');
 const IncreasingPriceCrowdsaleImpl = artifacts.require('IncreasingPriceCrowdsaleImpl');
 const SimpleToken = artifacts.require('SimpleToken');
 const SimpleToken = artifacts.require('SimpleToken');
 
 
@@ -52,8 +54,8 @@ contract('IncreasingPriceCrowdsale', function ([_, investor, wallet, purchaser])
       });
       });
 
 
       it('should have initial and final rate', async function () {
       it('should have initial and final rate', async function () {
-        (await this.crowdsale.initialRate()).should.be.bignumber.equal(initialRate);
-        (await this.crowdsale.finalRate()).should.be.bignumber.equal(finalRate);
+        expect(await this.crowdsale.initialRate()).to.be.bignumber.equal(initialRate);
+        expect(await this.crowdsale.finalRate()).to.be.bignumber.equal(finalRate);
       });
       });
 
 
       it('reverts when the base Crowdsale\'s rate function is called', async function () {
       it('reverts when the base Crowdsale\'s rate function is called', async function () {
@@ -63,54 +65,54 @@ contract('IncreasingPriceCrowdsale', function ([_, investor, wallet, purchaser])
       });
       });
 
 
       it('returns a rate of 0 before the crowdsale starts', async function () {
       it('returns a rate of 0 before the crowdsale starts', async function () {
-        (await this.crowdsale.getCurrentRate()).should.be.bignumber.equal('0');
+        expect(await this.crowdsale.getCurrentRate()).to.be.bignumber.equal('0');
       });
       });
 
 
       it('returns a rate of 0 after the crowdsale ends', async function () {
       it('returns a rate of 0 after the crowdsale ends', async function () {
         await time.increaseTo(this.afterClosingTime);
         await time.increaseTo(this.afterClosingTime);
-        (await this.crowdsale.getCurrentRate()).should.be.bignumber.equal('0');
+        expect(await this.crowdsale.getCurrentRate()).to.be.bignumber.equal('0');
       });
       });
 
 
       it('at start', async function () {
       it('at start', async function () {
         await time.increaseTo(this.startTime);
         await time.increaseTo(this.startTime);
         await this.crowdsale.buyTokens(investor, { value, from: purchaser });
         await this.crowdsale.buyTokens(investor, { value, from: purchaser });
-        (await this.token.balanceOf(investor)).should.be.bignumber.equal(value.mul(initialRate));
+        expect(await this.token.balanceOf(investor)).to.be.bignumber.equal(value.mul(initialRate));
       });
       });
 
 
       it('at time 150', async function () {
       it('at time 150', async function () {
         await time.increaseTo(this.startTime.addn(150));
         await time.increaseTo(this.startTime.addn(150));
         await this.crowdsale.buyTokens(investor, { value, from: purchaser });
         await this.crowdsale.buyTokens(investor, { value, from: purchaser });
-        (await this.token.balanceOf(investor)).should.be.bignumber.equal(value.mul(rateAtTime150));
+        expect(await this.token.balanceOf(investor)).to.be.bignumber.equal(value.mul(rateAtTime150));
       });
       });
 
 
       it('at time 300', async function () {
       it('at time 300', async function () {
         await time.increaseTo(this.startTime.addn(300));
         await time.increaseTo(this.startTime.addn(300));
         await this.crowdsale.buyTokens(investor, { value, from: purchaser });
         await this.crowdsale.buyTokens(investor, { value, from: purchaser });
-        (await this.token.balanceOf(investor)).should.be.bignumber.equal(value.mul(rateAtTime300));
+        expect(await this.token.balanceOf(investor)).to.be.bignumber.equal(value.mul(rateAtTime300));
       });
       });
 
 
       it('at time 1500', async function () {
       it('at time 1500', async function () {
         await time.increaseTo(this.startTime.addn(1500));
         await time.increaseTo(this.startTime.addn(1500));
         await this.crowdsale.buyTokens(investor, { value, from: purchaser });
         await this.crowdsale.buyTokens(investor, { value, from: purchaser });
-        (await this.token.balanceOf(investor)).should.be.bignumber.equal(value.mul(rateAtTime1500));
+        expect(await this.token.balanceOf(investor)).to.be.bignumber.equal(value.mul(rateAtTime1500));
       });
       });
 
 
       it('at time 30', async function () {
       it('at time 30', async function () {
         await time.increaseTo(this.startTime.addn(30));
         await time.increaseTo(this.startTime.addn(30));
         await this.crowdsale.buyTokens(investor, { value, from: purchaser });
         await this.crowdsale.buyTokens(investor, { value, from: purchaser });
-        (await this.token.balanceOf(investor)).should.be.bignumber.equal(value.mul(rateAtTime30));
+        expect(await this.token.balanceOf(investor)).to.be.bignumber.equal(value.mul(rateAtTime30));
       });
       });
 
 
       it('at time 150000', async function () {
       it('at time 150000', async function () {
         await time.increaseTo(this.startTime.addn(150000));
         await time.increaseTo(this.startTime.addn(150000));
         await this.crowdsale.buyTokens(investor, { value, from: purchaser });
         await this.crowdsale.buyTokens(investor, { value, from: purchaser });
-        (await this.token.balanceOf(investor)).should.be.bignumber.equal(value.mul(rateAtTime150000));
+        expect(await this.token.balanceOf(investor)).to.be.bignumber.equal(value.mul(rateAtTime150000));
       });
       });
 
 
       it('at time 450000', async function () {
       it('at time 450000', async function () {
         await time.increaseTo(this.startTime.addn(450000));
         await time.increaseTo(this.startTime.addn(450000));
         await this.crowdsale.buyTokens(investor, { value, from: purchaser });
         await this.crowdsale.buyTokens(investor, { value, from: purchaser });
-        (await this.token.balanceOf(investor)).should.be.bignumber.equal(value.mul(rateAtTime450000));
+        expect(await this.token.balanceOf(investor)).to.be.bignumber.equal(value.mul(rateAtTime450000));
       });
       });
     });
     });
   });
   });

+ 5 - 3
test/crowdsale/IndividuallyCappedCrowdsale.test.js

@@ -1,5 +1,7 @@
 const { BN, ether, expectRevert } = require('openzeppelin-test-helpers');
 const { BN, ether, expectRevert } = require('openzeppelin-test-helpers');
 
 
+const { expect } = require('chai');
+
 const IndividuallyCappedCrowdsaleImpl = artifacts.require('IndividuallyCappedCrowdsaleImpl');
 const IndividuallyCappedCrowdsaleImpl = artifacts.require('IndividuallyCappedCrowdsaleImpl');
 const SimpleToken = artifacts.require('SimpleToken');
 const SimpleToken = artifacts.require('SimpleToken');
 const { shouldBehaveLikePublicRole } = require('../behaviors/access/roles/PublicRole.behavior');
 const { shouldBehaveLikePublicRole } = require('../behaviors/access/roles/PublicRole.behavior');
@@ -30,7 +32,7 @@ contract('IndividuallyCappedCrowdsale', function (
   describe('individual caps', function () {
   describe('individual caps', function () {
     it('sets a cap when the sender is a capper', async function () {
     it('sets a cap when the sender is a capper', async function () {
       await this.crowdsale.setCap(alice, capAlice, { from: capper });
       await this.crowdsale.setCap(alice, capAlice, { from: capper });
-      (await this.crowdsale.getCap(alice)).should.be.bignumber.equal(capAlice);
+      expect(await this.crowdsale.getCap(alice)).to.be.bignumber.equal(capAlice);
     });
     });
 
 
     it('reverts when a non-capper sets a cap', async function () {
     it('reverts when a non-capper sets a cap', async function () {
@@ -84,12 +86,12 @@ contract('IndividuallyCappedCrowdsale', function (
 
 
       describe('reporting state', function () {
       describe('reporting state', function () {
         it('should report correct cap', async function () {
         it('should report correct cap', async function () {
-          (await this.crowdsale.getCap(alice)).should.be.bignumber.equal(capAlice);
+          expect(await this.crowdsale.getCap(alice)).to.be.bignumber.equal(capAlice);
         });
         });
 
 
         it('should report actual contribution', async function () {
         it('should report actual contribution', async function () {
           await this.crowdsale.buyTokens(alice, { value: lessThanCapAlice });
           await this.crowdsale.buyTokens(alice, { value: lessThanCapAlice });
-          (await this.crowdsale.getContribution(alice)).should.be.bignumber.equal(lessThanCapAlice);
+          expect(await this.crowdsale.getContribution(alice)).to.be.bignumber.equal(lessThanCapAlice);
         });
         });
       });
       });
     });
     });

+ 4 - 2
test/crowdsale/MintedCrowdsale.behavior.js

@@ -1,5 +1,7 @@
 const { balance, expectEvent } = require('openzeppelin-test-helpers');
 const { balance, expectEvent } = require('openzeppelin-test-helpers');
 
 
+const { expect } = require('chai');
+
 function shouldBehaveLikeMintedCrowdsale ([_, investor, wallet, purchaser], rate, value) {
 function shouldBehaveLikeMintedCrowdsale ([_, investor, wallet, purchaser], rate, value) {
   const expectedTokenAmount = rate.mul(value);
   const expectedTokenAmount = rate.mul(value);
 
 
@@ -24,13 +26,13 @@ function shouldBehaveLikeMintedCrowdsale ([_, investor, wallet, purchaser], rate
 
 
       it('should assign tokens to sender', async function () {
       it('should assign tokens to sender', async function () {
         await this.crowdsale.sendTransaction({ value: value, from: investor });
         await this.crowdsale.sendTransaction({ value: value, from: investor });
-        (await this.token.balanceOf(investor)).should.be.bignumber.equal(expectedTokenAmount);
+        expect(await this.token.balanceOf(investor)).to.be.bignumber.equal(expectedTokenAmount);
       });
       });
 
 
       it('should forward funds to wallet', async function () {
       it('should forward funds to wallet', async function () {
         const balanceTracker = await balance.tracker(wallet);
         const balanceTracker = await balance.tracker(wallet);
         await this.crowdsale.sendTransaction({ value, from: investor });
         await this.crowdsale.sendTransaction({ value, from: investor });
-        (await balanceTracker.delta()).should.be.bignumber.equal(value);
+        expect(await balanceTracker.delta()).to.be.bignumber.equal(value);
       });
       });
     });
     });
   });
   });

+ 3 - 1
test/crowdsale/MintedCrowdsale.test.js

@@ -1,6 +1,8 @@
 const { BN, ether, expectRevert } = require('openzeppelin-test-helpers');
 const { BN, ether, expectRevert } = require('openzeppelin-test-helpers');
 const { shouldBehaveLikeMintedCrowdsale } = require('./MintedCrowdsale.behavior');
 const { shouldBehaveLikeMintedCrowdsale } = require('./MintedCrowdsale.behavior');
 
 
+const { expect } = require('chai');
+
 const MintedCrowdsaleImpl = artifacts.require('MintedCrowdsaleImpl');
 const MintedCrowdsaleImpl = artifacts.require('MintedCrowdsaleImpl');
 const ERC20Mintable = artifacts.require('ERC20Mintable');
 const ERC20Mintable = artifacts.require('ERC20Mintable');
 const ERC20 = artifacts.require('ERC20');
 const ERC20 = artifacts.require('ERC20');
@@ -19,7 +21,7 @@ contract('MintedCrowdsale', function ([_, deployer, investor, wallet, purchaser]
     });
     });
 
 
     it('crowdsale should be minter', async function () {
     it('crowdsale should be minter', async function () {
-      (await this.token.isMinter(this.crowdsale.address)).should.equal(true);
+      expect(await this.token.isMinter(this.crowdsale.address)).to.equal(true);
     });
     });
 
 
     shouldBehaveLikeMintedCrowdsale([_, investor, wallet, purchaser], rate, value);
     shouldBehaveLikeMintedCrowdsale([_, investor, wallet, purchaser], rate, value);

+ 6 - 4
test/crowdsale/PostDeliveryCrowdsale.test.js

@@ -1,5 +1,7 @@
 const { BN, ether, expectRevert, time } = require('openzeppelin-test-helpers');
 const { BN, ether, expectRevert, time } = require('openzeppelin-test-helpers');
 
 
+const { expect } = require('chai');
+
 const PostDeliveryCrowdsaleImpl = artifacts.require('PostDeliveryCrowdsaleImpl');
 const PostDeliveryCrowdsaleImpl = artifacts.require('PostDeliveryCrowdsaleImpl');
 const SimpleToken = artifacts.require('SimpleToken');
 const SimpleToken = artifacts.require('SimpleToken');
 
 
@@ -36,8 +38,8 @@ contract('PostDeliveryCrowdsale', function ([_, investor, wallet, purchaser]) {
       });
       });
 
 
       it('does not immediately assign tokens to beneficiaries', async function () {
       it('does not immediately assign tokens to beneficiaries', async function () {
-        (await this.crowdsale.balanceOf(investor)).should.be.bignumber.equal(value);
-        (await this.token.balanceOf(investor)).should.be.bignumber.equal('0');
+        expect(await this.crowdsale.balanceOf(investor)).to.be.bignumber.equal(value);
+        expect(await this.token.balanceOf(investor)).to.be.bignumber.equal('0');
       });
       });
 
 
       it('does not allow beneficiaries to withdraw tokens before crowdsale ends', async function () {
       it('does not allow beneficiaries to withdraw tokens before crowdsale ends', async function () {
@@ -53,8 +55,8 @@ contract('PostDeliveryCrowdsale', function ([_, investor, wallet, purchaser]) {
 
 
         it('allows beneficiaries to withdraw tokens', async function () {
         it('allows beneficiaries to withdraw tokens', async function () {
           await this.crowdsale.withdrawTokens(investor);
           await this.crowdsale.withdrawTokens(investor);
-          (await this.crowdsale.balanceOf(investor)).should.be.bignumber.equal('0');
-          (await this.token.balanceOf(investor)).should.be.bignumber.equal(value);
+          expect(await this.crowdsale.balanceOf(investor)).to.be.bignumber.equal('0');
+          expect(await this.token.balanceOf(investor)).to.be.bignumber.equal(value);
         });
         });
 
 
         it('rejects multiple withdrawals', async function () {
         it('rejects multiple withdrawals', async function () {

+ 4 - 2
test/crowdsale/RefundableCrowdsale.test.js

@@ -1,5 +1,7 @@
 const { balance, BN, ether, expectRevert, time } = require('openzeppelin-test-helpers');
 const { balance, BN, ether, expectRevert, time } = require('openzeppelin-test-helpers');
 
 
+const { expect } = require('chai');
+
 const RefundableCrowdsaleImpl = artifacts.require('RefundableCrowdsaleImpl');
 const RefundableCrowdsaleImpl = artifacts.require('RefundableCrowdsaleImpl');
 const SimpleToken = artifacts.require('SimpleToken');
 const SimpleToken = artifacts.require('SimpleToken');
 
 
@@ -72,7 +74,7 @@ contract('RefundableCrowdsale', function ([_, wallet, investor, purchaser, other
           it('refunds', async function () {
           it('refunds', async function () {
             const balanceTracker = await balance.tracker(investor);
             const balanceTracker = await balance.tracker(investor);
             await this.crowdsale.claimRefund(investor, { gasPrice: 0 });
             await this.crowdsale.claimRefund(investor, { gasPrice: 0 });
-            (await balanceTracker.delta()).should.be.bignumber.equal(lessThanGoal);
+            expect(await balanceTracker.delta()).to.be.bignumber.equal(lessThanGoal);
           });
           });
         });
         });
       });
       });
@@ -96,7 +98,7 @@ contract('RefundableCrowdsale', function ([_, wallet, investor, purchaser, other
 
 
           it('forwards funds to wallet', async function () {
           it('forwards funds to wallet', async function () {
             const postWalletBalance = await balance.current(wallet);
             const postWalletBalance = await balance.current(wallet);
-            postWalletBalance.sub(this.preWalletBalance).should.be.bignumber.equal(goal);
+            expect(postWalletBalance.sub(this.preWalletBalance)).to.be.bignumber.equal(goal);
           });
           });
         });
         });
       });
       });

+ 8 - 6
test/crowdsale/RefundablePostDeliveryCrowdsale.test.js

@@ -1,5 +1,7 @@
 const { BN, ether, expectRevert, time } = require('openzeppelin-test-helpers');
 const { BN, ether, expectRevert, time } = require('openzeppelin-test-helpers');
 
 
+const { expect } = require('chai');
+
 const RefundablePostDeliveryCrowdsaleImpl = artifacts.require('RefundablePostDeliveryCrowdsaleImpl');
 const RefundablePostDeliveryCrowdsaleImpl = artifacts.require('RefundablePostDeliveryCrowdsaleImpl');
 const SimpleToken = artifacts.require('SimpleToken');
 const SimpleToken = artifacts.require('SimpleToken');
 
 
@@ -37,8 +39,8 @@ contract('RefundablePostDeliveryCrowdsale', function ([_, investor, wallet, purc
       });
       });
 
 
       it('does not immediately deliver tokens to beneficiaries', async function () {
       it('does not immediately deliver tokens to beneficiaries', async function () {
-        (await this.crowdsale.balanceOf(investor)).should.be.bignumber.equal(value);
-        (await this.token.balanceOf(investor)).should.be.bignumber.equal('0');
+        expect(await this.crowdsale.balanceOf(investor)).to.be.bignumber.equal(value);
+        expect(await this.token.balanceOf(investor)).to.be.bignumber.equal('0');
       });
       });
 
 
       it('does not allow beneficiaries to withdraw tokens before crowdsale ends', async function () {
       it('does not allow beneficiaries to withdraw tokens before crowdsale ends', async function () {
@@ -69,8 +71,8 @@ contract('RefundablePostDeliveryCrowdsale', function ([_, investor, wallet, purc
       });
       });
 
 
       it('does not immediately deliver tokens to beneficiaries', async function () {
       it('does not immediately deliver tokens to beneficiaries', async function () {
-        (await this.crowdsale.balanceOf(investor)).should.be.bignumber.equal(value);
-        (await this.token.balanceOf(investor)).should.be.bignumber.equal('0');
+        expect(await this.crowdsale.balanceOf(investor)).to.be.bignumber.equal(value);
+        expect(await this.token.balanceOf(investor)).to.be.bignumber.equal('0');
       });
       });
 
 
       it('does not allow beneficiaries to withdraw tokens before crowdsale ends', async function () {
       it('does not allow beneficiaries to withdraw tokens before crowdsale ends', async function () {
@@ -87,8 +89,8 @@ contract('RefundablePostDeliveryCrowdsale', function ([_, investor, wallet, purc
 
 
         it('allows beneficiaries to withdraw tokens', async function () {
         it('allows beneficiaries to withdraw tokens', async function () {
           await this.crowdsale.withdrawTokens(investor);
           await this.crowdsale.withdrawTokens(investor);
-          (await this.crowdsale.balanceOf(investor)).should.be.bignumber.equal('0');
-          (await this.token.balanceOf(investor)).should.be.bignumber.equal(value);
+          expect(await this.crowdsale.balanceOf(investor)).to.be.bignumber.equal('0');
+          expect(await this.token.balanceOf(investor)).to.be.bignumber.equal(value);
         });
         });
 
 
         it('rejects multiple withdrawals', async function () {
         it('rejects multiple withdrawals', async function () {

+ 11 - 9
test/crowdsale/TimedCrowdsale.test.js

@@ -1,5 +1,7 @@
 const { BN, ether, expectEvent, expectRevert, time } = require('openzeppelin-test-helpers');
 const { BN, ether, expectEvent, expectRevert, time } = require('openzeppelin-test-helpers');
 
 
+const { expect } = require('chai');
+
 const TimedCrowdsaleImpl = artifacts.require('TimedCrowdsaleImpl');
 const TimedCrowdsaleImpl = artifacts.require('TimedCrowdsaleImpl');
 const SimpleToken = artifacts.require('SimpleToken');
 const SimpleToken = artifacts.require('SimpleToken');
 
 
@@ -47,15 +49,15 @@ contract('TimedCrowdsale', function ([_, investor, wallet, purchaser]) {
     });
     });
 
 
     it('should be ended only after end', async function () {
     it('should be ended only after end', async function () {
-      (await this.crowdsale.hasClosed()).should.equal(false);
+      expect(await this.crowdsale.hasClosed()).to.equal(false);
       await time.increaseTo(this.afterClosingTime);
       await time.increaseTo(this.afterClosingTime);
-      (await this.crowdsale.isOpen()).should.equal(false);
-      (await this.crowdsale.hasClosed()).should.equal(true);
+      expect(await this.crowdsale.isOpen()).to.equal(false);
+      expect(await this.crowdsale.hasClosed()).to.equal(true);
     });
     });
 
 
     describe('accepting payments', function () {
     describe('accepting payments', function () {
       it('should reject payments before start', async function () {
       it('should reject payments before start', async function () {
-        (await this.crowdsale.isOpen()).should.equal(false);
+        expect(await this.crowdsale.isOpen()).to.equal(false);
         await expectRevert(this.crowdsale.send(value), 'TimedCrowdsale: not open');
         await expectRevert(this.crowdsale.send(value), 'TimedCrowdsale: not open');
         await expectRevert(this.crowdsale.buyTokens(investor, { from: purchaser, value: value }),
         await expectRevert(this.crowdsale.buyTokens(investor, { from: purchaser, value: value }),
           'TimedCrowdsale: not open'
           'TimedCrowdsale: not open'
@@ -64,7 +66,7 @@ contract('TimedCrowdsale', function ([_, investor, wallet, purchaser]) {
 
 
       it('should accept payments after start', async function () {
       it('should accept payments after start', async function () {
         await time.increaseTo(this.openingTime);
         await time.increaseTo(this.openingTime);
-        (await this.crowdsale.isOpen()).should.equal(true);
+        expect(await this.crowdsale.isOpen()).to.equal(true);
         await this.crowdsale.send(value);
         await this.crowdsale.send(value);
         await this.crowdsale.buyTokens(investor, { value: value, from: purchaser });
         await this.crowdsale.buyTokens(investor, { value: value, from: purchaser });
       });
       });
@@ -94,7 +96,7 @@ contract('TimedCrowdsale', function ([_, investor, wallet, purchaser]) {
 
 
       context('before crowdsale start', function () {
       context('before crowdsale start', function () {
         beforeEach(async function () {
         beforeEach(async function () {
-          (await this.crowdsale.isOpen()).should.equal(false);
+          expect(await this.crowdsale.isOpen()).to.equal(false);
           await expectRevert(this.crowdsale.send(value), 'TimedCrowdsale: not open');
           await expectRevert(this.crowdsale.send(value), 'TimedCrowdsale: not open');
         });
         });
 
 
@@ -105,14 +107,14 @@ contract('TimedCrowdsale', function ([_, investor, wallet, purchaser]) {
             prevClosingTime: this.closingTime,
             prevClosingTime: this.closingTime,
             newClosingTime: newClosingTime,
             newClosingTime: newClosingTime,
           });
           });
-          (await this.crowdsale.closingTime()).should.be.bignumber.equal(newClosingTime);
+          expect(await this.crowdsale.closingTime()).to.be.bignumber.equal(newClosingTime);
         });
         });
       });
       });
 
 
       context('after crowdsale start', function () {
       context('after crowdsale start', function () {
         beforeEach(async function () {
         beforeEach(async function () {
           await time.increaseTo(this.openingTime);
           await time.increaseTo(this.openingTime);
-          (await this.crowdsale.isOpen()).should.equal(true);
+          expect(await this.crowdsale.isOpen()).to.equal(true);
           await this.crowdsale.send(value);
           await this.crowdsale.send(value);
         });
         });
 
 
@@ -123,7 +125,7 @@ contract('TimedCrowdsale', function ([_, investor, wallet, purchaser]) {
             prevClosingTime: this.closingTime,
             prevClosingTime: this.closingTime,
             newClosingTime: newClosingTime,
             newClosingTime: newClosingTime,
           });
           });
-          (await this.crowdsale.closingTime()).should.be.bignumber.equal(newClosingTime);
+          expect(await this.crowdsale.closingTime()).to.be.bignumber.equal(newClosingTime);
         });
         });
       });
       });
 
 

+ 13 - 10
test/cryptography/ECDSA.test.js

@@ -2,6 +2,8 @@ const { constants, expectRevert } = require('openzeppelin-test-helpers');
 const { ZERO_ADDRESS } = constants;
 const { ZERO_ADDRESS } = constants;
 const { toEthSignedMessageHash, fixSignature } = require('../helpers/sign');
 const { toEthSignedMessageHash, fixSignature } = require('../helpers/sign');
 
 
+const { expect } = require('chai');
+
 const ECDSAMock = artifacts.require('ECDSAMock');
 const ECDSAMock = artifacts.require('ECDSAMock');
 
 
 const TEST_MESSAGE = web3.utils.sha3('OpenZeppelin');
 const TEST_MESSAGE = web3.utils.sha3('OpenZeppelin');
@@ -23,7 +25,7 @@ contract('ECDSA', function ([_, other]) {
         it('returns 0', async function () {
         it('returns 0', async function () {
           const version = '00';
           const version = '00';
           const signature = signatureWithoutVersion + version;
           const signature = signatureWithoutVersion + version;
-          (await this.ecdsa.recover(TEST_MESSAGE, signature)).should.equal(ZERO_ADDRESS);
+          expect(await this.ecdsa.recover(TEST_MESSAGE, signature)).to.equal(ZERO_ADDRESS);
         });
         });
       });
       });
 
 
@@ -31,7 +33,7 @@ contract('ECDSA', function ([_, other]) {
         it('works', async function () {
         it('works', async function () {
           const version = '1b'; // 27 = 1b.
           const version = '1b'; // 27 = 1b.
           const signature = signatureWithoutVersion + version;
           const signature = signatureWithoutVersion + version;
-          (await this.ecdsa.recover(TEST_MESSAGE, signature)).should.equal(signer);
+          expect(await this.ecdsa.recover(TEST_MESSAGE, signature)).to.equal(signer);
         });
         });
       });
       });
 
 
@@ -41,7 +43,7 @@ contract('ECDSA', function ([_, other]) {
           // The only valid values are 0, 1, 27 and 28.
           // The only valid values are 0, 1, 27 and 28.
           const version = '02';
           const version = '02';
           const signature = signatureWithoutVersion + version;
           const signature = signatureWithoutVersion + version;
-          (await this.ecdsa.recover(TEST_MESSAGE, signature)).should.equal(ZERO_ADDRESS);
+          expect(await this.ecdsa.recover(TEST_MESSAGE, signature)).to.equal(ZERO_ADDRESS);
         });
         });
       });
       });
     });
     });
@@ -55,7 +57,7 @@ contract('ECDSA', function ([_, other]) {
         it('returns 0', async function () {
         it('returns 0', async function () {
           const version = '01';
           const version = '01';
           const signature = signatureWithoutVersion + version;
           const signature = signatureWithoutVersion + version;
-          (await this.ecdsa.recover(TEST_MESSAGE, signature)).should.equal(ZERO_ADDRESS);
+          expect(await this.ecdsa.recover(TEST_MESSAGE, signature)).to.equal(ZERO_ADDRESS);
         });
         });
       });
       });
 
 
@@ -63,7 +65,7 @@ contract('ECDSA', function ([_, other]) {
         it('works', async function () {
         it('works', async function () {
           const version = '1c'; // 28 = 1c.
           const version = '1c'; // 28 = 1c.
           const signature = signatureWithoutVersion + version;
           const signature = signatureWithoutVersion + version;
-          (await this.ecdsa.recover(TEST_MESSAGE, signature)).should.equal(signer);
+          expect(await this.ecdsa.recover(TEST_MESSAGE, signature)).to.equal(signer);
         });
         });
       });
       });
 
 
@@ -73,7 +75,7 @@ contract('ECDSA', function ([_, other]) {
           // The only valid values are 0, 1, 27 and 28.
           // The only valid values are 0, 1, 27 and 28.
           const version = '02';
           const version = '02';
           const signature = signatureWithoutVersion + version;
           const signature = signatureWithoutVersion + version;
-          (await this.ecdsa.recover(TEST_MESSAGE, signature)).should.equal(ZERO_ADDRESS);
+          expect(await this.ecdsa.recover(TEST_MESSAGE, signature)).to.equal(ZERO_ADDRESS);
         });
         });
       });
       });
     });
     });
@@ -84,7 +86,7 @@ contract('ECDSA', function ([_, other]) {
         // eslint-disable-next-line max-len
         // eslint-disable-next-line max-len
         const highSSignature = '0xe742ff452d41413616a5bf43fe15dd88294e983d3d36206c2712f39083d638bde0a0fc89be718fbc1033e1d30d78be1c68081562ed2e97af876f286f3453231d1b';
         const highSSignature = '0xe742ff452d41413616a5bf43fe15dd88294e983d3d36206c2712f39083d638bde0a0fc89be718fbc1033e1d30d78be1c68081562ed2e97af876f286f3453231d1b';
 
 
-        (await this.ecdsa.recover(message, highSSignature)).should.equal(ZERO_ADDRESS);
+        expect(await this.ecdsa.recover(message, highSSignature)).to.equal(ZERO_ADDRESS);
       });
       });
     });
     });
 
 
@@ -95,10 +97,10 @@ contract('ECDSA', function ([_, other]) {
           const signature = fixSignature(await web3.eth.sign(TEST_MESSAGE, other));
           const signature = fixSignature(await web3.eth.sign(TEST_MESSAGE, other));
 
 
           // Recover the signer address from the generated message and signature.
           // Recover the signer address from the generated message and signature.
-          (await this.ecdsa.recover(
+          expect(await this.ecdsa.recover(
             toEthSignedMessageHash(TEST_MESSAGE),
             toEthSignedMessageHash(TEST_MESSAGE),
             signature
             signature
-          )).should.equal(other);
+          )).to.equal(other);
         });
         });
       });
       });
 
 
@@ -108,7 +110,7 @@ contract('ECDSA', function ([_, other]) {
           const signature = await web3.eth.sign(TEST_MESSAGE, other);
           const signature = await web3.eth.sign(TEST_MESSAGE, other);
 
 
           // Recover the signer address from the generated message and wrong signature.
           // Recover the signer address from the generated message and wrong signature.
-          (await this.ecdsa.recover(WRONG_MESSAGE, signature)).should.not.equal(other);
+          expect(await this.ecdsa.recover(WRONG_MESSAGE, signature)).to.not.equal(other);
         });
         });
       });
       });
     });
     });
@@ -129,6 +131,7 @@ contract('ECDSA', function ([_, other]) {
   context('toEthSignedMessage', function () {
   context('toEthSignedMessage', function () {
     it('should prefix hashes correctly', async function () {
     it('should prefix hashes correctly', async function () {
       (await this.ecdsa.toEthSignedMessageHash(TEST_MESSAGE)).should.equal(toEthSignedMessageHash(TEST_MESSAGE));
       (await this.ecdsa.toEthSignedMessageHash(TEST_MESSAGE)).should.equal(toEthSignedMessageHash(TEST_MESSAGE));
+      expect(await this.ecdsa.toEthSignedMessageHash(TEST_MESSAGE)).to.equal(toEthSignedMessageHash(TEST_MESSAGE));
     });
     });
   });
   });
 });
 });

+ 5 - 3
test/cryptography/MerkleProof.test.js

@@ -3,6 +3,8 @@ require('openzeppelin-test-helpers');
 const { MerkleTree } = require('../helpers/merkleTree.js');
 const { MerkleTree } = require('../helpers/merkleTree.js');
 const { keccak256, bufferToHex } = require('ethereumjs-util');
 const { keccak256, bufferToHex } = require('ethereumjs-util');
 
 
+const { expect } = require('chai');
+
 const MerkleProofWrapper = artifacts.require('MerkleProofWrapper');
 const MerkleProofWrapper = artifacts.require('MerkleProofWrapper');
 
 
 contract('MerkleProof', function () {
 contract('MerkleProof', function () {
@@ -21,7 +23,7 @@ contract('MerkleProof', function () {
 
 
       const leaf = bufferToHex(keccak256(elements[0]));
       const leaf = bufferToHex(keccak256(elements[0]));
 
 
-      (await this.merkleProof.verify(proof, root, leaf)).should.equal(true);
+      expect(await this.merkleProof.verify(proof, root, leaf)).to.equal(true);
     });
     });
 
 
     it('should return false for an invalid Merkle proof', async function () {
     it('should return false for an invalid Merkle proof', async function () {
@@ -37,7 +39,7 @@ contract('MerkleProof', function () {
 
 
       const badProof = badMerkleTree.getHexProof(badElements[0]);
       const badProof = badMerkleTree.getHexProof(badElements[0]);
 
 
-      (await this.merkleProof.verify(badProof, correctRoot, correctLeaf)).should.equal(false);
+      expect(await this.merkleProof.verify(badProof, correctRoot, correctLeaf)).to.equal(false);
     });
     });
 
 
     it('should return false for a Merkle proof of invalid length', async function () {
     it('should return false for a Merkle proof of invalid length', async function () {
@@ -51,7 +53,7 @@ contract('MerkleProof', function () {
 
 
       const leaf = bufferToHex(keccak256(elements[0]));
       const leaf = bufferToHex(keccak256(elements[0]));
 
 
-      (await this.merkleProof.verify(badProof, root, leaf)).should.equal(false);
+      expect(await this.merkleProof.verify(badProof, root, leaf)).to.equal(false);
     });
     });
   });
   });
 });
 });

+ 9 - 7
test/drafts/Counters.test.js

@@ -1,5 +1,7 @@
 const { expectRevert } = require('openzeppelin-test-helpers');
 const { expectRevert } = require('openzeppelin-test-helpers');
 
 
+const { expect } = require('chai');
+
 const CountersImpl = artifacts.require('CountersImpl');
 const CountersImpl = artifacts.require('CountersImpl');
 
 
 contract('Counters', function () {
 contract('Counters', function () {
@@ -8,13 +10,13 @@ contract('Counters', function () {
   });
   });
 
 
   it('starts at zero', async function () {
   it('starts at zero', async function () {
-    (await this.counter.current()).should.be.bignumber.equal('0');
+    expect(await this.counter.current()).to.be.bignumber.equal('0');
   });
   });
 
 
   describe('increment', function () {
   describe('increment', function () {
     it('increments the current value by one', async function () {
     it('increments the current value by one', async function () {
       await this.counter.increment();
       await this.counter.increment();
-      (await this.counter.current()).should.be.bignumber.equal('1');
+      expect(await this.counter.current()).to.be.bignumber.equal('1');
     });
     });
 
 
     it('can be called multiple times', async function () {
     it('can be called multiple times', async function () {
@@ -22,19 +24,19 @@ contract('Counters', function () {
       await this.counter.increment();
       await this.counter.increment();
       await this.counter.increment();
       await this.counter.increment();
 
 
-      (await this.counter.current()).should.be.bignumber.equal('3');
+      expect(await this.counter.current()).to.be.bignumber.equal('3');
     });
     });
   });
   });
 
 
   describe('decrement', function () {
   describe('decrement', function () {
     beforeEach(async function () {
     beforeEach(async function () {
       await this.counter.increment();
       await this.counter.increment();
-      (await this.counter.current()).should.be.bignumber.equal('1');
+      expect(await this.counter.current()).to.be.bignumber.equal('1');
     });
     });
 
 
     it('decrements the current value by one', async function () {
     it('decrements the current value by one', async function () {
       await this.counter.decrement();
       await this.counter.decrement();
-      (await this.counter.current()).should.be.bignumber.equal('0');
+      expect(await this.counter.current()).to.be.bignumber.equal('0');
     });
     });
 
 
     it('reverts if the current value is 0', async function () {
     it('reverts if the current value is 0', async function () {
@@ -46,13 +48,13 @@ contract('Counters', function () {
       await this.counter.increment();
       await this.counter.increment();
       await this.counter.increment();
       await this.counter.increment();
 
 
-      (await this.counter.current()).should.be.bignumber.equal('3');
+      expect(await this.counter.current()).to.be.bignumber.equal('3');
 
 
       await this.counter.decrement();
       await this.counter.decrement();
       await this.counter.decrement();
       await this.counter.decrement();
       await this.counter.decrement();
       await this.counter.decrement();
 
 
-      (await this.counter.current()).should.be.bignumber.equal('0');
+      expect(await this.counter.current()).to.be.bignumber.equal('0');
     });
     });
   });
   });
 });
 });

+ 4 - 2
test/drafts/ERC1046/ERC20Metadata.test.js

@@ -2,6 +2,8 @@ require('openzeppelin-test-helpers');
 
 
 const ERC20MetadataMock = artifacts.require('ERC20MetadataMock');
 const ERC20MetadataMock = artifacts.require('ERC20MetadataMock');
 
 
+const { expect } = require('chai');
+
 const metadataURI = 'https://example.com';
 const metadataURI = 'https://example.com';
 
 
 describe('ERC20Metadata', function () {
 describe('ERC20Metadata', function () {
@@ -10,14 +12,14 @@ describe('ERC20Metadata', function () {
   });
   });
 
 
   it('responds with the metadata', async function () {
   it('responds with the metadata', async function () {
-    (await this.token.tokenURI()).should.equal(metadataURI);
+    expect(await this.token.tokenURI()).to.equal(metadataURI);
   });
   });
 
 
   describe('setTokenURI', function () {
   describe('setTokenURI', function () {
     it('changes the original URI', async function () {
     it('changes the original URI', async function () {
       const newMetadataURI = 'https://betterexample.com';
       const newMetadataURI = 'https://betterexample.com';
       await this.token.setTokenURI(newMetadataURI);
       await this.token.setTokenURI(newMetadataURI);
-      (await this.token.tokenURI()).should.equal(newMetadataURI);
+      expect(await this.token.tokenURI()).to.equal(newMetadataURI);
     });
     });
   });
   });
 });
 });

+ 14 - 12
test/drafts/ERC20Migrator.test.js

@@ -1,6 +1,8 @@
 const { BN, constants, expectRevert } = require('openzeppelin-test-helpers');
 const { BN, constants, expectRevert } = require('openzeppelin-test-helpers');
 const { ZERO_ADDRESS } = constants;
 const { ZERO_ADDRESS } = constants;
 
 
+const { expect } = require('chai');
+
 const ERC20Mock = artifacts.require('ERC20Mock');
 const ERC20Mock = artifacts.require('ERC20Mock');
 const ERC20Mintable = artifacts.require('ERC20Mintable');
 const ERC20Mintable = artifacts.require('ERC20Mintable');
 const ERC20Migrator = artifacts.require('ERC20Migrator');
 const ERC20Migrator = artifacts.require('ERC20Migrator');
@@ -22,7 +24,7 @@ contract('ERC20Migrator', function ([_, owner, recipient, anotherAccount]) {
     });
     });
 
 
     it('returns legacy token', async function () {
     it('returns legacy token', async function () {
-      (await this.migrator.legacyToken()).should.be.equal(this.legacyToken.address);
+      expect(await this.migrator.legacyToken()).to.equal(this.legacyToken.address);
     });
     });
 
 
     describe('beginMigration', function () {
     describe('beginMigration', function () {
@@ -54,7 +56,7 @@ contract('ERC20Migrator', function ([_, owner, recipient, anotherAccount]) {
 
 
     context('before starting the migration', function () {
     context('before starting the migration', function () {
       it('returns the zero address for the new token', async function () {
       it('returns the zero address for the new token', async function () {
-        (await this.migrator.newToken()).should.be.equal(ZERO_ADDRESS);
+        expect(await this.migrator.newToken()).to.equal(ZERO_ADDRESS);
       });
       });
 
 
       describe('migrateAll', function () {
       describe('migrateAll', function () {
@@ -97,7 +99,7 @@ contract('ERC20Migrator', function ([_, owner, recipient, anotherAccount]) {
       });
       });
 
 
       it('returns new token', async function () {
       it('returns new token', async function () {
-        (await this.migrator.newToken()).should.be.equal(this.newToken.address);
+        expect(await this.migrator.newToken()).to.equal(this.newToken.address);
       });
       });
 
 
       describe('migrateAll', function () {
       describe('migrateAll', function () {
@@ -117,20 +119,20 @@ contract('ERC20Migrator', function ([_, owner, recipient, anotherAccount]) {
 
 
           it('mints the same balance of the new token', async function () {
           it('mints the same balance of the new token', async function () {
             const currentBalance = await this.newToken.balanceOf(owner);
             const currentBalance = await this.newToken.balanceOf(owner);
-            currentBalance.should.be.bignumber.equal(amount);
+            expect(currentBalance).to.be.bignumber.equal(amount);
           });
           });
 
 
           it('burns a given amount of old tokens', async function () {
           it('burns a given amount of old tokens', async function () {
             const currentBurnedBalance = await this.legacyToken.balanceOf(this.migrator.address);
             const currentBurnedBalance = await this.legacyToken.balanceOf(this.migrator.address);
-            currentBurnedBalance.should.be.bignumber.equal(amount);
+            expect(currentBurnedBalance).to.be.bignumber.equal(amount);
 
 
             const currentLegacyTokenBalance = await this.legacyToken.balanceOf(owner);
             const currentLegacyTokenBalance = await this.legacyToken.balanceOf(owner);
-            currentLegacyTokenBalance.should.be.bignumber.equal('0');
+            expect(currentLegacyTokenBalance).to.be.bignumber.equal('0');
           });
           });
 
 
           it('updates the total supply', async function () {
           it('updates the total supply', async function () {
             const currentSupply = await this.newToken.totalSupply();
             const currentSupply = await this.newToken.totalSupply();
-            currentSupply.should.be.bignumber.equal(amount);
+            expect(currentSupply).to.be.bignumber.equal(amount);
           });
           });
         });
         });
 
 
@@ -144,7 +146,7 @@ contract('ERC20Migrator', function ([_, owner, recipient, anotherAccount]) {
 
 
           it('migrates only approved amount', async function () {
           it('migrates only approved amount', async function () {
             const currentBalance = await this.newToken.balanceOf(owner);
             const currentBalance = await this.newToken.balanceOf(owner);
-            currentBalance.should.be.bignumber.equal(amount);
+            expect(currentBalance).to.be.bignumber.equal(amount);
           });
           });
         });
         });
       });
       });
@@ -165,20 +167,20 @@ contract('ERC20Migrator', function ([_, owner, recipient, anotherAccount]) {
 
 
           it('mints that amount of the new token', async function () {
           it('mints that amount of the new token', async function () {
             const currentBalance = await this.newToken.balanceOf(owner);
             const currentBalance = await this.newToken.balanceOf(owner);
-            currentBalance.should.be.bignumber.equal(amount);
+            expect(currentBalance).to.be.bignumber.equal(amount);
           });
           });
 
 
           it('burns a given amount of old tokens', async function () {
           it('burns a given amount of old tokens', async function () {
             const currentBurnedBalance = await this.legacyToken.balanceOf(this.migrator.address);
             const currentBurnedBalance = await this.legacyToken.balanceOf(this.migrator.address);
-            currentBurnedBalance.should.be.bignumber.equal(amount);
+            expect(currentBurnedBalance).to.be.bignumber.equal(amount);
 
 
             const currentLegacyTokenBalance = await this.legacyToken.balanceOf(owner);
             const currentLegacyTokenBalance = await this.legacyToken.balanceOf(owner);
-            currentLegacyTokenBalance.should.be.bignumber.equal(totalSupply.sub(amount));
+            expect(currentLegacyTokenBalance).to.be.bignumber.equal(totalSupply.sub(amount));
           });
           });
 
 
           it('updates the total supply', async function () {
           it('updates the total supply', async function () {
             const currentSupply = await this.newToken.totalSupply();
             const currentSupply = await this.newToken.totalSupply();
-            currentSupply.should.be.bignumber.equal(amount);
+            expect(currentSupply).to.be.bignumber.equal(amount);
           });
           });
         });
         });
 
 

+ 30 - 28
test/drafts/ERC20Snapshot.test.js

@@ -1,6 +1,8 @@
 const { BN, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 const { BN, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 const ERC20SnapshotMock = artifacts.require('ERC20SnapshotMock');
 const ERC20SnapshotMock = artifacts.require('ERC20SnapshotMock');
 
 
+const { expect } = require('chai');
+
 contract('ERC20Snapshot', function ([_, initialHolder, recipient, other]) {
 contract('ERC20Snapshot', function ([_, initialHolder, recipient, other]) {
   const initialSupply = new BN(100);
   const initialSupply = new BN(100);
 
 
@@ -41,7 +43,7 @@ contract('ERC20Snapshot', function ([_, initialHolder, recipient, other]) {
 
 
       context('with no supply changes after the snapshot', function () {
       context('with no supply changes after the snapshot', function () {
         it('returns the current total supply', async function () {
         it('returns the current total supply', async function () {
-          (await this.token.totalSupplyAt(this.initialSnapshotId)).should.be.bignumber.equal(initialSupply);
+          expect(await this.token.totalSupplyAt(this.initialSnapshotId)).to.be.bignumber.equal(initialSupply);
         });
         });
       });
       });
 
 
@@ -52,7 +54,7 @@ contract('ERC20Snapshot', function ([_, initialHolder, recipient, other]) {
         });
         });
 
 
         it('returns the total supply before the changes', async function () {
         it('returns the total supply before the changes', async function () {
-          (await this.token.totalSupplyAt(this.initialSnapshotId)).should.be.bignumber.equal(initialSupply);
+          expect(await this.token.totalSupplyAt(this.initialSnapshotId)).to.be.bignumber.equal(initialSupply);
         });
         });
 
 
         context('with a second snapshot after supply changes', function () {
         context('with a second snapshot after supply changes', function () {
@@ -64,9 +66,9 @@ contract('ERC20Snapshot', function ([_, initialHolder, recipient, other]) {
           });
           });
 
 
           it('snapshots return the supply before and after the changes', async function () {
           it('snapshots return the supply before and after the changes', async function () {
-            (await this.token.totalSupplyAt(this.initialSnapshotId)).should.be.bignumber.equal(initialSupply);
+            expect(await this.token.totalSupplyAt(this.initialSnapshotId)).to.be.bignumber.equal(initialSupply);
 
 
-            (await this.token.totalSupplyAt(this.secondSnapshotId)).should.be.bignumber.equal(
+            expect(await this.token.totalSupplyAt(this.secondSnapshotId)).to.be.bignumber.equal(
               await this.token.totalSupply()
               await this.token.totalSupply()
             );
             );
           });
           });
@@ -83,12 +85,12 @@ contract('ERC20Snapshot', function ([_, initialHolder, recipient, other]) {
           });
           });
 
 
           it('all posterior snapshots return the supply after the changes', async function () {
           it('all posterior snapshots return the supply after the changes', async function () {
-            (await this.token.totalSupplyAt(this.initialSnapshotId)).should.be.bignumber.equal(initialSupply);
+            expect(await this.token.totalSupplyAt(this.initialSnapshotId)).to.be.bignumber.equal(initialSupply);
 
 
             const currentSupply = await this.token.totalSupply();
             const currentSupply = await this.token.totalSupply();
 
 
             for (const id of this.secondSnapshotIds) {
             for (const id of this.secondSnapshotIds) {
-              (await this.token.totalSupplyAt(id)).should.be.bignumber.equal(currentSupply);
+              expect(await this.token.totalSupplyAt(id)).to.be.bignumber.equal(currentSupply);
             }
             }
           });
           });
         });
         });
@@ -115,10 +117,10 @@ contract('ERC20Snapshot', function ([_, initialHolder, recipient, other]) {
 
 
       context('with no balance changes after the snapshot', function () {
       context('with no balance changes after the snapshot', function () {
         it('returns the current balance for all accounts', async function () {
         it('returns the current balance for all accounts', async function () {
-          (await this.token.balanceOfAt(initialHolder, this.initialSnapshotId))
-            .should.be.bignumber.equal(initialSupply);
-          (await this.token.balanceOfAt(recipient, this.initialSnapshotId)).should.be.bignumber.equal('0');
-          (await this.token.balanceOfAt(other, this.initialSnapshotId)).should.be.bignumber.equal('0');
+          expect(await this.token.balanceOfAt(initialHolder, this.initialSnapshotId))
+            .to.be.bignumber.equal(initialSupply);
+          expect(await this.token.balanceOfAt(recipient, this.initialSnapshotId)).to.be.bignumber.equal('0');
+          expect(await this.token.balanceOfAt(other, this.initialSnapshotId)).to.be.bignumber.equal('0');
         });
         });
       });
       });
 
 
@@ -130,10 +132,10 @@ contract('ERC20Snapshot', function ([_, initialHolder, recipient, other]) {
         });
         });
 
 
         it('returns the balances before the changes', async function () {
         it('returns the balances before the changes', async function () {
-          (await this.token.balanceOfAt(initialHolder, this.initialSnapshotId))
-            .should.be.bignumber.equal(initialSupply);
-          (await this.token.balanceOfAt(recipient, this.initialSnapshotId)).should.be.bignumber.equal('0');
-          (await this.token.balanceOfAt(other, this.initialSnapshotId)).should.be.bignumber.equal('0');
+          expect(await this.token.balanceOfAt(initialHolder, this.initialSnapshotId))
+            .to.be.bignumber.equal(initialSupply);
+          expect(await this.token.balanceOfAt(recipient, this.initialSnapshotId)).to.be.bignumber.equal('0');
+          expect(await this.token.balanceOfAt(other, this.initialSnapshotId)).to.be.bignumber.equal('0');
         });
         });
 
 
         context('with a second snapshot after supply changes', function () {
         context('with a second snapshot after supply changes', function () {
@@ -145,18 +147,18 @@ contract('ERC20Snapshot', function ([_, initialHolder, recipient, other]) {
           });
           });
 
 
           it('snapshots return the balances before and after the changes', async function () {
           it('snapshots return the balances before and after the changes', async function () {
-            (await this.token.balanceOfAt(initialHolder, this.initialSnapshotId))
-              .should.be.bignumber.equal(initialSupply);
-            (await this.token.balanceOfAt(recipient, this.initialSnapshotId)).should.be.bignumber.equal('0');
-            (await this.token.balanceOfAt(other, this.initialSnapshotId)).should.be.bignumber.equal('0');
+            expect(await this.token.balanceOfAt(initialHolder, this.initialSnapshotId))
+              .to.be.bignumber.equal(initialSupply);
+            expect(await this.token.balanceOfAt(recipient, this.initialSnapshotId)).to.be.bignumber.equal('0');
+            expect(await this.token.balanceOfAt(other, this.initialSnapshotId)).to.be.bignumber.equal('0');
 
 
-            (await this.token.balanceOfAt(initialHolder, this.secondSnapshotId)).should.be.bignumber.equal(
+            expect(await this.token.balanceOfAt(initialHolder, this.secondSnapshotId)).to.be.bignumber.equal(
               await this.token.balanceOf(initialHolder)
               await this.token.balanceOf(initialHolder)
             );
             );
-            (await this.token.balanceOfAt(recipient, this.secondSnapshotId)).should.be.bignumber.equal(
+            expect(await this.token.balanceOfAt(recipient, this.secondSnapshotId)).to.be.bignumber.equal(
               await this.token.balanceOf(recipient)
               await this.token.balanceOf(recipient)
             );
             );
-            (await this.token.balanceOfAt(other, this.secondSnapshotId)).should.be.bignumber.equal(
+            expect(await this.token.balanceOfAt(other, this.secondSnapshotId)).to.be.bignumber.equal(
               await this.token.balanceOf(other)
               await this.token.balanceOf(other)
             );
             );
           });
           });
@@ -173,19 +175,19 @@ contract('ERC20Snapshot', function ([_, initialHolder, recipient, other]) {
           });
           });
 
 
           it('all posterior snapshots return the supply after the changes', async function () {
           it('all posterior snapshots return the supply after the changes', async function () {
-            (await this.token.balanceOfAt(initialHolder, this.initialSnapshotId))
-              .should.be.bignumber.equal(initialSupply);
-            (await this.token.balanceOfAt(recipient, this.initialSnapshotId)).should.be.bignumber.equal('0');
-            (await this.token.balanceOfAt(other, this.initialSnapshotId)).should.be.bignumber.equal('0');
+            expect(await this.token.balanceOfAt(initialHolder, this.initialSnapshotId))
+              .to.be.bignumber.equal(initialSupply);
+            expect(await this.token.balanceOfAt(recipient, this.initialSnapshotId)).to.be.bignumber.equal('0');
+            expect(await this.token.balanceOfAt(other, this.initialSnapshotId)).to.be.bignumber.equal('0');
 
 
             for (const id of this.secondSnapshotIds) {
             for (const id of this.secondSnapshotIds) {
-              (await this.token.balanceOfAt(initialHolder, id)).should.be.bignumber.equal(
+              expect(await this.token.balanceOfAt(initialHolder, id)).to.be.bignumber.equal(
                 await this.token.balanceOf(initialHolder)
                 await this.token.balanceOf(initialHolder)
               );
               );
-              (await this.token.balanceOfAt(recipient, id)).should.be.bignumber.equal(
+              expect(await this.token.balanceOfAt(recipient, id)).to.be.bignumber.equal(
                 await this.token.balanceOf(recipient)
                 await this.token.balanceOf(recipient)
               );
               );
-              (await this.token.balanceOfAt(other, id)).should.be.bignumber.equal(
+              expect(await this.token.balanceOfAt(other, id)).to.be.bignumber.equal(
                 await this.token.balanceOf(other)
                 await this.token.balanceOf(other)
               );
               );
             }
             }

+ 26 - 23
test/drafts/SignatureBouncer.test.js

@@ -2,6 +2,8 @@ const { expectRevert } = require('openzeppelin-test-helpers');
 const { getSignFor } = require('../helpers/sign');
 const { getSignFor } = require('../helpers/sign');
 const { shouldBehaveLikePublicRole } = require('../behaviors/access/roles/PublicRole.behavior');
 const { shouldBehaveLikePublicRole } = require('../behaviors/access/roles/PublicRole.behavior');
 
 
+const { expect } = require('chai');
+
 const SignatureBouncerMock = artifacts.require('SignatureBouncerMock');
 const SignatureBouncerMock = artifacts.require('SignatureBouncerMock');
 
 
 const UINT_VALUE = 23;
 const UINT_VALUE = 23;
@@ -140,79 +142,80 @@ contract('SignatureBouncer', function ([_, signer, otherSigner, other, authorize
   context('signature validation', function () {
   context('signature validation', function () {
     context('plain signature', function () {
     context('plain signature', function () {
       it('validates valid signature for valid user', async function () {
       it('validates valid signature for valid user', async function () {
-        (await this.sigBouncer.checkValidSignature(authorizedUser, await this.signFor(authorizedUser)))
-          .should.equal(true);
+        expect(await this.sigBouncer.checkValidSignature(authorizedUser, await this.signFor(authorizedUser)))
+          .to.equal(true);
       });
       });
 
 
       it('does not validate invalid signature for valid user', async function () {
       it('does not validate invalid signature for valid user', async function () {
-        (await this.sigBouncer.checkValidSignature(authorizedUser, INVALID_SIGNATURE)).should.equal(false);
+        expect(await this.sigBouncer.checkValidSignature(authorizedUser, INVALID_SIGNATURE)).to.equal(false);
       });
       });
 
 
       it('does not validate valid signature for anyone', async function () {
       it('does not validate valid signature for anyone', async function () {
-        (await this.sigBouncer.checkValidSignature(other, await this.signFor(authorizedUser))).should.equal(false);
+        expect(await this.sigBouncer.checkValidSignature(other, await this.signFor(authorizedUser))).to.equal(false);
       });
       });
 
 
       it('does not validate valid signature for method for valid user', async function () {
       it('does not validate valid signature for method for valid user', async function () {
-        (await this.sigBouncer.checkValidSignature(
+        expect(await this.sigBouncer.checkValidSignature(
           authorizedUser, await this.signFor(authorizedUser, 'checkValidSignature'))
           authorizedUser, await this.signFor(authorizedUser, 'checkValidSignature'))
-        ).should.equal(false);
+        ).to.equal(false);
       });
       });
     });
     });
 
 
     context('method signature', function () {
     context('method signature', function () {
       it('validates valid signature with correct method for valid user', async function () {
       it('validates valid signature with correct method for valid user', async function () {
-        (await this.sigBouncer.checkValidSignatureAndMethod(authorizedUser,
+        expect(await this.sigBouncer.checkValidSignatureAndMethod(authorizedUser,
           await this.signFor(authorizedUser, 'checkValidSignatureAndMethod'))
           await this.signFor(authorizedUser, 'checkValidSignatureAndMethod'))
-        ).should.equal(true);
+        ).to.equal(true);
       });
       });
 
 
       it('does not validate invalid signature with correct method for valid user', async function () {
       it('does not validate invalid signature with correct method for valid user', async function () {
-        (await this.sigBouncer.checkValidSignatureAndMethod(authorizedUser, INVALID_SIGNATURE)).should.equal(false);
+        expect(await this.sigBouncer.checkValidSignatureAndMethod(authorizedUser, INVALID_SIGNATURE)).to.equal(false);
       });
       });
 
 
       it('does not validate valid signature with correct method for anyone', async function () {
       it('does not validate valid signature with correct method for anyone', async function () {
-        (await this.sigBouncer.checkValidSignatureAndMethod(other,
+        expect(await this.sigBouncer.checkValidSignatureAndMethod(other,
           await this.signFor(authorizedUser, 'checkValidSignatureAndMethod'))
           await this.signFor(authorizedUser, 'checkValidSignatureAndMethod'))
-        ).should.equal(false);
+        ).to.equal(false);
       });
       });
 
 
       it('does not validate valid non-method signature with correct method for valid user', async function () {
       it('does not validate valid non-method signature with correct method for valid user', async function () {
-        (await this.sigBouncer.checkValidSignatureAndMethod(authorizedUser, await this.signFor(authorizedUser))
-        ).should.equal(false);
+        expect(await this.sigBouncer.checkValidSignatureAndMethod(authorizedUser, await this.signFor(authorizedUser))
+        ).to.equal(false);
       });
       });
     });
     });
 
 
     context('method and data signature', function () {
     context('method and data signature', function () {
       it('validates valid signature with correct method and data for valid user', async function () {
       it('validates valid signature with correct method and data for valid user', async function () {
-        (await this.sigBouncer.checkValidSignatureAndData(authorizedUser, BYTES_VALUE, UINT_VALUE,
+        expect(await this.sigBouncer.checkValidSignatureAndData(authorizedUser, BYTES_VALUE, UINT_VALUE,
           await this.signFor(authorizedUser, 'checkValidSignatureAndData', [authorizedUser, BYTES_VALUE, UINT_VALUE]))
           await this.signFor(authorizedUser, 'checkValidSignatureAndData', [authorizedUser, BYTES_VALUE, UINT_VALUE]))
-        ).should.equal(true);
+        ).to.equal(true);
       });
       });
 
 
       it('does not validate invalid signature with correct method and data for valid user', async function () {
       it('does not validate invalid signature with correct method and data for valid user', async function () {
-        (await this.sigBouncer.checkValidSignatureAndData(authorizedUser, BYTES_VALUE, UINT_VALUE, INVALID_SIGNATURE)
-        ).should.equal(false);
+        expect(
+          await this.sigBouncer.checkValidSignatureAndData(authorizedUser, BYTES_VALUE, UINT_VALUE, INVALID_SIGNATURE)
+        ).to.equal(false);
       });
       });
 
 
       it('does not validate valid signature with correct method and incorrect data for valid user',
       it('does not validate valid signature with correct method and incorrect data for valid user',
         async function () {
         async function () {
-          (await this.sigBouncer.checkValidSignatureAndData(authorizedUser, BYTES_VALUE, UINT_VALUE + 10,
+          expect(await this.sigBouncer.checkValidSignatureAndData(authorizedUser, BYTES_VALUE, UINT_VALUE + 10,
             await this.signFor(authorizedUser, 'checkValidSignatureAndData', [authorizedUser, BYTES_VALUE, UINT_VALUE]))
             await this.signFor(authorizedUser, 'checkValidSignatureAndData', [authorizedUser, BYTES_VALUE, UINT_VALUE]))
-          ).should.equal(false);
+          ).to.equal(false);
         }
         }
       );
       );
 
 
       it('does not validate valid signature with correct method and data for anyone', async function () {
       it('does not validate valid signature with correct method and data for anyone', async function () {
-        (await this.sigBouncer.checkValidSignatureAndData(other, BYTES_VALUE, UINT_VALUE,
+        expect(await this.sigBouncer.checkValidSignatureAndData(other, BYTES_VALUE, UINT_VALUE,
           await this.signFor(authorizedUser, 'checkValidSignatureAndData', [authorizedUser, BYTES_VALUE, UINT_VALUE]))
           await this.signFor(authorizedUser, 'checkValidSignatureAndData', [authorizedUser, BYTES_VALUE, UINT_VALUE]))
-        ).should.equal(false);
+        ).that.equal(false);
       });
       });
 
 
       it('does not validate valid non-method-data signature with correct method and data for valid user',
       it('does not validate valid non-method-data signature with correct method and data for valid user',
         async function () {
         async function () {
-          (await this.sigBouncer.checkValidSignatureAndData(authorizedUser, BYTES_VALUE, UINT_VALUE,
+          expect(await this.sigBouncer.checkValidSignatureAndData(authorizedUser, BYTES_VALUE, UINT_VALUE,
             await this.signFor(authorizedUser, 'checkValidSignatureAndData'))
             await this.signFor(authorizedUser, 'checkValidSignatureAndData'))
-          ).should.equal(false);
+          ).to.equal(false);
         }
         }
       );
       );
     });
     });

+ 9 - 7
test/drafts/SignedSafeMath.test.js

@@ -1,6 +1,8 @@
 const { BN, constants, expectRevert } = require('openzeppelin-test-helpers');
 const { BN, constants, expectRevert } = require('openzeppelin-test-helpers');
 const { MAX_INT256, MIN_INT256 } = constants;
 const { MAX_INT256, MIN_INT256 } = constants;
 
 
+const { expect } = require('chai');
+
 const SignedSafeMathMock = artifacts.require('SignedSafeMathMock');
 const SignedSafeMathMock = artifacts.require('SignedSafeMathMock');
 
 
 contract('SignedSafeMath', function () {
 contract('SignedSafeMath', function () {
@@ -9,8 +11,8 @@ contract('SignedSafeMath', function () {
   });
   });
 
 
   async function testCommutative (fn, lhs, rhs, expected) {
   async function testCommutative (fn, lhs, rhs, expected) {
-    (await fn(lhs, rhs)).should.be.bignumber.equal(expected);
-    (await fn(rhs, lhs)).should.be.bignumber.equal(expected);
+    expect(await fn(lhs, rhs)).to.be.bignumber.equal(expected);
+    expect(await fn(rhs, lhs)).to.be.bignumber.equal(expected);
   }
   }
 
 
   async function testFailsCommutative (fn, lhs, rhs, reason) {
   async function testFailsCommutative (fn, lhs, rhs, reason) {
@@ -54,7 +56,7 @@ contract('SignedSafeMath', function () {
       const b = new BN('1234');
       const b = new BN('1234');
 
 
       const result = await this.safeMath.sub(a, b);
       const result = await this.safeMath.sub(a, b);
-      result.should.be.bignumber.equal(a.sub(b));
+      expect(result).to.be.bignumber.equal(a.sub(b));
     });
     });
 
 
     it('subtracts correctly if it does not overflow and the result is negative', async function () {
     it('subtracts correctly if it does not overflow and the result is negative', async function () {
@@ -62,7 +64,7 @@ contract('SignedSafeMath', function () {
       const b = new BN('5678');
       const b = new BN('5678');
 
 
       const result = await this.safeMath.sub(a, b);
       const result = await this.safeMath.sub(a, b);
-      result.should.be.bignumber.equal(a.sub(b));
+      expect(result).to.be.bignumber.equal(a.sub(b));
     });
     });
 
 
     it('reverts on positive subtraction overflow', async function () {
     it('reverts on positive subtraction overflow', async function () {
@@ -116,21 +118,21 @@ contract('SignedSafeMath', function () {
       const b = new BN('5678');
       const b = new BN('5678');
 
 
       const result = await this.safeMath.div(a, b);
       const result = await this.safeMath.div(a, b);
-      result.should.be.bignumber.equal(a.div(b));
+      expect(result).to.be.bignumber.equal(a.div(b));
     });
     });
 
 
     it('divides zero correctly', async function () {
     it('divides zero correctly', async function () {
       const a = new BN('0');
       const a = new BN('0');
       const b = new BN('5678');
       const b = new BN('5678');
 
 
-      (await this.safeMath.div(a, b)).should.be.bignumber.equal('0');
+      expect(await this.safeMath.div(a, b)).to.be.bignumber.equal('0');
     });
     });
 
 
     it('returns complete number result on non-even division', async function () {
     it('returns complete number result on non-even division', async function () {
       const a = new BN('7000');
       const a = new BN('7000');
       const b = new BN('5678');
       const b = new BN('5678');
 
 
-      (await this.safeMath.div(a, b)).should.be.bignumber.equal('1');
+      expect(await this.safeMath.div(a, b)).to.be.bignumber.equal('1');
     });
     });
 
 
     it('reverts on division by zero', async function () {
     it('reverts on division by zero', async function () {

+ 5 - 3
test/drafts/Strings.test.js

@@ -1,5 +1,7 @@
 const { constants } = require('openzeppelin-test-helpers');
 const { constants } = require('openzeppelin-test-helpers');
 
 
+const { expect } = require('chai');
+
 const StringsMock = artifacts.require('StringsMock');
 const StringsMock = artifacts.require('StringsMock');
 
 
 contract('Strings', function () {
 contract('Strings', function () {
@@ -9,15 +11,15 @@ contract('Strings', function () {
 
 
   describe('from uint256', function () {
   describe('from uint256', function () {
     it('converts 0', async function () {
     it('converts 0', async function () {
-      (await this.strings.fromUint256(0)).should.equal('0');
+      expect(await this.strings.fromUint256(0)).to.equal('0');
     });
     });
 
 
     it('converts a positive number', async function () {
     it('converts a positive number', async function () {
-      (await this.strings.fromUint256(4132)).should.equal('4132');
+      expect(await this.strings.fromUint256(4132)).to.equal('4132');
     });
     });
 
 
     it('converts MAX_UINT256', async function () {
     it('converts MAX_UINT256', async function () {
-      (await this.strings.fromUint256(constants.MAX_UINT256)).should.equal(constants.MAX_UINT256.toString());
+      expect(await this.strings.fromUint256(constants.MAX_UINT256)).to.equal(constants.MAX_UINT256.toString());
     });
     });
   });
   });
 });
 });

+ 17 - 15
test/drafts/TokenVesting.test.js

@@ -1,6 +1,8 @@
 const { BN, constants, expectEvent, expectRevert, time } = require('openzeppelin-test-helpers');
 const { BN, constants, expectEvent, expectRevert, time } = require('openzeppelin-test-helpers');
 const { ZERO_ADDRESS } = constants;
 const { ZERO_ADDRESS } = constants;
 
 
+const { expect } = require('chai');
+
 const ERC20Mintable = artifacts.require('ERC20Mintable');
 const ERC20Mintable = artifacts.require('ERC20Mintable');
 const TokenVesting = artifacts.require('TokenVesting');
 const TokenVesting = artifacts.require('TokenVesting');
 
 
@@ -18,7 +20,7 @@ contract('TokenVesting', function ([_, owner, beneficiary]) {
     const cliffDuration = this.duration;
     const cliffDuration = this.duration;
     const duration = this.cliffDuration;
     const duration = this.cliffDuration;
 
 
-    cliffDuration.should.be.bignumber.that.is.at.least(duration);
+    expect(cliffDuration).to.be.bignumber.that.is.at.least(duration);
 
 
     await expectRevert(
     await expectRevert(
       TokenVesting.new(beneficiary, this.start, cliffDuration, duration, true, { from: owner }),
       TokenVesting.new(beneficiary, this.start, cliffDuration, duration, true, { from: owner }),
@@ -60,11 +62,11 @@ contract('TokenVesting', function ([_, owner, beneficiary]) {
     });
     });
 
 
     it('can get state', async function () {
     it('can get state', async function () {
-      (await this.vesting.beneficiary()).should.be.equal(beneficiary);
-      (await this.vesting.cliff()).should.be.bignumber.equal(this.start.add(this.cliffDuration));
-      (await this.vesting.start()).should.be.bignumber.equal(this.start);
-      (await this.vesting.duration()).should.be.bignumber.equal(this.duration);
-      (await this.vesting.revocable()).should.be.equal(true);
+      expect(await this.vesting.beneficiary()).to.equal(beneficiary);
+      expect(await this.vesting.cliff()).to.be.bignumber.equal(this.start.add(this.cliffDuration));
+      expect(await this.vesting.start()).to.be.bignumber.equal(this.start);
+      expect(await this.vesting.duration()).to.be.bignumber.equal(this.duration);
+      expect(await this.vesting.revocable()).to.be.equal(true);
     });
     });
 
 
     it('cannot be released before cliff', async function () {
     it('cannot be released before cliff', async function () {
@@ -89,8 +91,8 @@ contract('TokenVesting', function ([_, owner, beneficiary]) {
       const releaseTime = await time.latest();
       const releaseTime = await time.latest();
 
 
       const releasedAmount = amount.mul(releaseTime.sub(this.start)).div(this.duration);
       const releasedAmount = amount.mul(releaseTime.sub(this.start)).div(this.duration);
-      (await this.token.balanceOf(beneficiary)).should.bignumber.equal(releasedAmount);
-      (await this.vesting.released(this.token.address)).should.bignumber.equal(releasedAmount);
+      expect(await this.token.balanceOf(beneficiary)).to.be.bignumber.equal(releasedAmount);
+      expect(await this.vesting.released(this.token.address)).to.be.bignumber.equal(releasedAmount);
     });
     });
 
 
     it('should linearly release tokens during vesting period', async function () {
     it('should linearly release tokens during vesting period', async function () {
@@ -103,22 +105,22 @@ contract('TokenVesting', function ([_, owner, beneficiary]) {
 
 
         await this.vesting.release(this.token.address);
         await this.vesting.release(this.token.address);
         const expectedVesting = amount.mul(now.sub(this.start)).div(this.duration);
         const expectedVesting = amount.mul(now.sub(this.start)).div(this.duration);
-        (await this.token.balanceOf(beneficiary)).should.bignumber.equal(expectedVesting);
-        (await this.vesting.released(this.token.address)).should.bignumber.equal(expectedVesting);
+        expect(await this.token.balanceOf(beneficiary)).to.be.bignumber.equal(expectedVesting);
+        expect(await this.vesting.released(this.token.address)).to.be.bignumber.equal(expectedVesting);
       }
       }
     });
     });
 
 
     it('should have released all after end', async function () {
     it('should have released all after end', async function () {
       await time.increaseTo(this.start.add(this.duration));
       await time.increaseTo(this.start.add(this.duration));
       await this.vesting.release(this.token.address);
       await this.vesting.release(this.token.address);
-      (await this.token.balanceOf(beneficiary)).should.bignumber.equal(amount);
-      (await this.vesting.released(this.token.address)).should.bignumber.equal(amount);
+      expect(await this.token.balanceOf(beneficiary)).to.be.bignumber.equal(amount);
+      expect(await this.vesting.released(this.token.address)).to.be.bignumber.equal(amount);
     });
     });
 
 
     it('should be revoked by owner if revocable is set', async function () {
     it('should be revoked by owner if revocable is set', async function () {
       const { logs } = await this.vesting.revoke(this.token.address, { from: owner });
       const { logs } = await this.vesting.revoke(this.token.address, { from: owner });
       expectEvent.inLogs(logs, 'TokenVestingRevoked', { token: this.token.address });
       expectEvent.inLogs(logs, 'TokenVestingRevoked', { token: this.token.address });
-      (await this.vesting.revoked(this.token.address)).should.equal(true);
+      expect(await this.vesting.revoked(this.token.address)).to.equal(true);
     });
     });
 
 
     it('should fail to be revoked by owner if revocable not set', async function () {
     it('should fail to be revoked by owner if revocable not set', async function () {
@@ -138,7 +140,7 @@ contract('TokenVesting', function ([_, owner, beneficiary]) {
 
 
       await this.vesting.revoke(this.token.address, { from: owner });
       await this.vesting.revoke(this.token.address, { from: owner });
 
 
-      (await this.token.balanceOf(owner)).should.bignumber.equal(amount.sub(vested));
+      expect(await this.token.balanceOf(owner)).to.be.bignumber.equal(amount.sub(vested));
     });
     });
 
 
     it('should keep the vested tokens when revoked by owner', async function () {
     it('should keep the vested tokens when revoked by owner', async function () {
@@ -150,7 +152,7 @@ contract('TokenVesting', function ([_, owner, beneficiary]) {
 
 
       const vestedPost = vestedAmount(amount, await time.latest(), this.start, this.cliffDuration, this.duration);
       const vestedPost = vestedAmount(amount, await time.latest(), this.start, this.cliffDuration, this.duration);
 
 
-      vestedPre.should.bignumber.equal(vestedPost);
+      expect(vestedPre).to.be.bignumber.equal(vestedPost);
     });
     });
 
 
     it('should fail to be revoked a second time', async function () {
     it('should fail to be revoked a second time', async function () {

+ 12 - 10
test/examples/SampleCrowdsale.test.js

@@ -1,5 +1,7 @@
 const { BN, balance, ether, expectRevert, time } = require('openzeppelin-test-helpers');
 const { BN, balance, ether, expectRevert, time } = require('openzeppelin-test-helpers');
 
 
+const { expect } = require('chai');
+
 const SampleCrowdsale = artifacts.require('SampleCrowdsale');
 const SampleCrowdsale = artifacts.require('SampleCrowdsale');
 const SampleCrowdsaleToken = artifacts.require('SampleCrowdsaleToken');
 const SampleCrowdsaleToken = artifacts.require('SampleCrowdsaleToken');
 
 
@@ -29,12 +31,12 @@ contract('SampleCrowdsale', function ([_, deployer, owner, wallet, investor]) {
   });
   });
 
 
   it('should create crowdsale with correct parameters', async function () {
   it('should create crowdsale with correct parameters', async function () {
-    (await this.crowdsale.openingTime()).should.be.bignumber.equal(this.openingTime);
-    (await this.crowdsale.closingTime()).should.be.bignumber.equal(this.closingTime);
-    (await this.crowdsale.rate()).should.be.bignumber.equal(RATE);
-    (await this.crowdsale.wallet()).should.be.equal(wallet);
-    (await this.crowdsale.goal()).should.be.bignumber.equal(GOAL);
-    (await this.crowdsale.cap()).should.be.bignumber.equal(CAP);
+    expect(await this.crowdsale.openingTime()).to.be.bignumber.equal(this.openingTime);
+    expect(await this.crowdsale.closingTime()).to.be.bignumber.equal(this.closingTime);
+    expect(await this.crowdsale.rate()).to.be.bignumber.equal(RATE);
+    expect(await this.crowdsale.wallet()).to.equal(wallet);
+    expect(await this.crowdsale.goal()).to.be.bignumber.equal(GOAL);
+    expect(await this.crowdsale.cap()).to.be.bignumber.equal(CAP);
   });
   });
 
 
   it('should not accept payments before start', async function () {
   it('should not accept payments before start', async function () {
@@ -51,8 +53,8 @@ contract('SampleCrowdsale', function ([_, deployer, owner, wallet, investor]) {
     await time.increaseTo(this.openingTime);
     await time.increaseTo(this.openingTime);
     await this.crowdsale.buyTokens(investor, { value: investmentAmount, from: investor });
     await this.crowdsale.buyTokens(investor, { value: investmentAmount, from: investor });
 
 
-    (await this.token.balanceOf(investor)).should.be.bignumber.equal(expectedTokenAmount);
-    (await this.token.totalSupply()).should.be.bignumber.equal(expectedTokenAmount);
+    expect(await this.token.balanceOf(investor)).to.be.bignumber.equal(expectedTokenAmount);
+    expect(await this.token.totalSupply()).to.be.bignumber.equal(expectedTokenAmount);
   });
   });
 
 
   it('should reject payments after end', async function () {
   it('should reject payments after end', async function () {
@@ -76,7 +78,7 @@ contract('SampleCrowdsale', function ([_, deployer, owner, wallet, investor]) {
     const balanceTracker = await balance.tracker(wallet);
     const balanceTracker = await balance.tracker(wallet);
     await time.increaseTo(this.afterClosingTime);
     await time.increaseTo(this.afterClosingTime);
     await this.crowdsale.finalize({ from: owner });
     await this.crowdsale.finalize({ from: owner });
-    (await balanceTracker.delta()).should.be.bignumber.equal(GOAL);
+    expect(await balanceTracker.delta()).to.be.bignumber.equal(GOAL);
   });
   });
 
 
   it('should allow refunds if the goal is not reached', async function () {
   it('should allow refunds if the goal is not reached', async function () {
@@ -89,7 +91,7 @@ contract('SampleCrowdsale', function ([_, deployer, owner, wallet, investor]) {
     await this.crowdsale.finalize({ from: owner });
     await this.crowdsale.finalize({ from: owner });
     await this.crowdsale.claimRefund(investor, { gasPrice: 0 });
     await this.crowdsale.claimRefund(investor, { gasPrice: 0 });
 
 
-    (await balanceTracker.delta()).should.be.bignumber.equal('0');
+    expect(await balanceTracker.delta()).to.be.bignumber.equal('0');
   });
   });
 
 
   describe('when goal > cap', function () {
   describe('when goal > cap', function () {

+ 6 - 4
test/examples/SimpleToken.test.js

@@ -1,6 +1,8 @@
 const { constants, expectEvent } = require('openzeppelin-test-helpers');
 const { constants, expectEvent } = require('openzeppelin-test-helpers');
 const { ZERO_ADDRESS } = constants;
 const { ZERO_ADDRESS } = constants;
 
 
+const { expect } = require('chai');
+
 const SimpleToken = artifacts.require('SimpleToken');
 const SimpleToken = artifacts.require('SimpleToken');
 
 
 contract('SimpleToken', function ([_, creator]) {
 contract('SimpleToken', function ([_, creator]) {
@@ -9,22 +11,22 @@ contract('SimpleToken', function ([_, creator]) {
   });
   });
 
 
   it('has a name', async function () {
   it('has a name', async function () {
-    (await this.token.name()).should.equal('SimpleToken');
+    expect(await this.token.name()).to.equal('SimpleToken');
   });
   });
 
 
   it('has a symbol', async function () {
   it('has a symbol', async function () {
-    (await this.token.symbol()).should.equal('SIM');
+    expect(await this.token.symbol()).to.equal('SIM');
   });
   });
 
 
   it('has 18 decimals', async function () {
   it('has 18 decimals', async function () {
-    (await this.token.decimals()).should.be.bignumber.equal('18');
+    expect(await this.token.decimals()).to.be.bignumber.equal('18');
   });
   });
 
 
   it('assigns the initial total supply to the creator', async function () {
   it('assigns the initial total supply to the creator', async function () {
     const totalSupply = await this.token.totalSupply();
     const totalSupply = await this.token.totalSupply();
     const creatorBalance = await this.token.balanceOf(creator);
     const creatorBalance = await this.token.balanceOf(creator);
 
 
-    creatorBalance.should.be.bignumber.equal(totalSupply);
+    expect(creatorBalance).to.be.bignumber.equal(totalSupply);
 
 
     await expectEvent.inConstruction(this.token, 'Transfer', {
     await expectEvent.inConstruction(this.token, 'Transfer', {
       from: ZERO_ADDRESS,
       from: ZERO_ADDRESS,

+ 19 - 17
test/introspection/ERC165Checker.test.js

@@ -1,5 +1,7 @@
 require('openzeppelin-test-helpers');
 require('openzeppelin-test-helpers');
 
 
+const { expect } = require('chai');
+
 const ERC165CheckerMock = artifacts.require('ERC165CheckerMock');
 const ERC165CheckerMock = artifacts.require('ERC165CheckerMock');
 const ERC165NotSupported = artifacts.require('ERC165NotSupported');
 const ERC165NotSupported = artifacts.require('ERC165NotSupported');
 const ERC165InterfacesSupported = artifacts.require('ERC165InterfacesSupported');
 const ERC165InterfacesSupported = artifacts.require('ERC165InterfacesSupported');
@@ -23,17 +25,17 @@ contract('ERC165Checker', function () {
 
 
     it('does not support ERC165', async function () {
     it('does not support ERC165', async function () {
       const supported = await this.mock.supportsERC165(this.target.address);
       const supported = await this.mock.supportsERC165(this.target.address);
-      supported.should.equal(false);
+      expect(supported).to.equal(false);
     });
     });
 
 
     it('does not support mock interface via supportsInterface', async function () {
     it('does not support mock interface via supportsInterface', async function () {
       const supported = await this.mock.supportsInterface(this.target.address, DUMMY_ID);
       const supported = await this.mock.supportsInterface(this.target.address, DUMMY_ID);
-      supported.should.equal(false);
+      expect(supported).to.equal(false);
     });
     });
 
 
     it('does not support mock interface via supportsAllInterfaces', async function () {
     it('does not support mock interface via supportsAllInterfaces', async function () {
       const supported = await this.mock.supportsAllInterfaces(this.target.address, [DUMMY_ID]);
       const supported = await this.mock.supportsAllInterfaces(this.target.address, [DUMMY_ID]);
-      supported.should.equal(false);
+      expect(supported).to.equal(false);
     });
     });
   });
   });
 
 
@@ -44,17 +46,17 @@ contract('ERC165Checker', function () {
 
 
     it('supports ERC165', async function () {
     it('supports ERC165', async function () {
       const supported = await this.mock.supportsERC165(this.target.address);
       const supported = await this.mock.supportsERC165(this.target.address);
-      supported.should.equal(true);
+      expect(supported).to.equal(true);
     });
     });
 
 
     it('does not support mock interface via supportsInterface', async function () {
     it('does not support mock interface via supportsInterface', async function () {
       const supported = await this.mock.supportsInterface(this.target.address, DUMMY_ID);
       const supported = await this.mock.supportsInterface(this.target.address, DUMMY_ID);
-      supported.should.equal(false);
+      expect(supported).to.equal(false);
     });
     });
 
 
     it('does not support mock interface via supportsAllInterfaces', async function () {
     it('does not support mock interface via supportsAllInterfaces', async function () {
       const supported = await this.mock.supportsAllInterfaces(this.target.address, [DUMMY_ID]);
       const supported = await this.mock.supportsAllInterfaces(this.target.address, [DUMMY_ID]);
-      supported.should.equal(false);
+      expect(supported).to.equal(false);
     });
     });
   });
   });
 
 
@@ -65,17 +67,17 @@ contract('ERC165Checker', function () {
 
 
     it('supports ERC165', async function () {
     it('supports ERC165', async function () {
       const supported = await this.mock.supportsERC165(this.target.address);
       const supported = await this.mock.supportsERC165(this.target.address);
-      supported.should.equal(true);
+      expect(supported).to.equal(true);
     });
     });
 
 
     it('supports mock interface via supportsInterface', async function () {
     it('supports mock interface via supportsInterface', async function () {
       const supported = await this.mock.supportsInterface(this.target.address, DUMMY_ID);
       const supported = await this.mock.supportsInterface(this.target.address, DUMMY_ID);
-      supported.should.equal(true);
+      expect(supported).to.equal(true);
     });
     });
 
 
     it('supports mock interface via supportsAllInterfaces', async function () {
     it('supports mock interface via supportsAllInterfaces', async function () {
       const supported = await this.mock.supportsAllInterfaces(this.target.address, [DUMMY_ID]);
       const supported = await this.mock.supportsAllInterfaces(this.target.address, [DUMMY_ID]);
-      supported.should.equal(true);
+      expect(supported).to.equal(true);
     });
     });
   });
   });
 
 
@@ -87,50 +89,50 @@ contract('ERC165Checker', function () {
 
 
     it('supports ERC165', async function () {
     it('supports ERC165', async function () {
       const supported = await this.mock.supportsERC165(this.target.address);
       const supported = await this.mock.supportsERC165(this.target.address);
-      supported.should.equal(true);
+      expect(supported).to.equal(true);
     });
     });
 
 
     it('supports each interfaceId via supportsInterface', async function () {
     it('supports each interfaceId via supportsInterface', async function () {
       for (const interfaceId of this.supportedInterfaces) {
       for (const interfaceId of this.supportedInterfaces) {
         const supported = await this.mock.supportsInterface(this.target.address, interfaceId);
         const supported = await this.mock.supportsInterface(this.target.address, interfaceId);
-        supported.should.equal(true);
+        expect(supported).to.equal(true);
       };
       };
     });
     });
 
 
     it('supports all interfaceIds via supportsAllInterfaces', async function () {
     it('supports all interfaceIds via supportsAllInterfaces', async function () {
       const supported = await this.mock.supportsAllInterfaces(this.target.address, this.supportedInterfaces);
       const supported = await this.mock.supportsAllInterfaces(this.target.address, this.supportedInterfaces);
-      supported.should.equal(true);
+      expect(supported).to.equal(true);
     });
     });
 
 
     it('supports none of the interfaces queried via supportsAllInterfaces', async function () {
     it('supports none of the interfaces queried via supportsAllInterfaces', async function () {
       const interfaceIdsToTest = [DUMMY_UNSUPPORTED_ID, DUMMY_UNSUPPORTED_ID_2];
       const interfaceIdsToTest = [DUMMY_UNSUPPORTED_ID, DUMMY_UNSUPPORTED_ID_2];
 
 
       const supported = await this.mock.supportsAllInterfaces(this.target.address, interfaceIdsToTest);
       const supported = await this.mock.supportsAllInterfaces(this.target.address, interfaceIdsToTest);
-      supported.should.equal(false);
+      expect(supported).to.equal(false);
     });
     });
 
 
     it('supports not all of the interfaces queried via supportsAllInterfaces', async function () {
     it('supports not all of the interfaces queried via supportsAllInterfaces', async function () {
       const interfaceIdsToTest = [...this.supportedInterfaces, DUMMY_UNSUPPORTED_ID];
       const interfaceIdsToTest = [...this.supportedInterfaces, DUMMY_UNSUPPORTED_ID];
 
 
       const supported = await this.mock.supportsAllInterfaces(this.target.address, interfaceIdsToTest);
       const supported = await this.mock.supportsAllInterfaces(this.target.address, interfaceIdsToTest);
-      supported.should.equal(false);
+      expect(supported).to.equal(false);
     });
     });
   });
   });
 
 
   context('account address does not support ERC165', function () {
   context('account address does not support ERC165', function () {
     it('does not support ERC165', async function () {
     it('does not support ERC165', async function () {
       const supported = await this.mock.supportsERC165(DUMMY_ACCOUNT);
       const supported = await this.mock.supportsERC165(DUMMY_ACCOUNT);
-      supported.should.equal(false);
+      expect(supported).to.equal(false);
     });
     });
 
 
     it('does not support mock interface via supportsInterface', async function () {
     it('does not support mock interface via supportsInterface', async function () {
       const supported = await this.mock.supportsInterface(DUMMY_ACCOUNT, DUMMY_ID);
       const supported = await this.mock.supportsInterface(DUMMY_ACCOUNT, DUMMY_ID);
-      supported.should.equal(false);
+      expect(supported).to.equal(false);
     });
     });
 
 
     it('does not support mock interface via supportsAllInterfaces', async function () {
     it('does not support mock interface via supportsAllInterfaces', async function () {
       const supported = await this.mock.supportsAllInterfaces(DUMMY_ACCOUNT, [DUMMY_ID]);
       const supported = await this.mock.supportsAllInterfaces(DUMMY_ACCOUNT, [DUMMY_ID]);
-      supported.should.equal(false);
+      expect(supported).to.equal(false);
     });
     });
   });
   });
 });
 });

+ 12 - 10
test/introspection/ERC1820Implementer.test.js

@@ -1,6 +1,8 @@
 const { expectRevert, singletons } = require('openzeppelin-test-helpers');
 const { expectRevert, singletons } = require('openzeppelin-test-helpers');
 const { bufferToHex, keccak256 } = require('ethereumjs-util');
 const { bufferToHex, keccak256 } = require('ethereumjs-util');
 
 
+const { expect } = require('chai');
+
 const ERC1820ImplementerMock = artifacts.require('ERC1820ImplementerMock');
 const ERC1820ImplementerMock = artifacts.require('ERC1820ImplementerMock');
 
 
 contract('ERC1820Implementer', function ([_, registryFunder, implementee, other]) {
 contract('ERC1820Implementer', function ([_, registryFunder, implementee, other]) {
@@ -16,8 +18,8 @@ contract('ERC1820Implementer', function ([_, registryFunder, implementee, other]
 
 
   context('with no registered interfaces', function () {
   context('with no registered interfaces', function () {
     it('returns false when interface implementation is queried', async function () {
     it('returns false when interface implementation is queried', async function () {
-      (await this.implementer.canImplementInterfaceForAddress(this.interfaceA, implementee))
-        .should.not.equal(ERC1820_ACCEPT_MAGIC);
+      expect(await this.implementer.canImplementInterfaceForAddress(this.interfaceA, implementee))
+        .to.not.equal(ERC1820_ACCEPT_MAGIC);
     });
     });
 
 
     it('reverts when attempting to set as implementer in the registry', async function () {
     it('reverts when attempting to set as implementer in the registry', async function () {
@@ -36,18 +38,18 @@ contract('ERC1820Implementer', function ([_, registryFunder, implementee, other]
     });
     });
 
 
     it('returns true when interface implementation is queried', async function () {
     it('returns true when interface implementation is queried', async function () {
-      (await this.implementer.canImplementInterfaceForAddress(this.interfaceA, implementee))
-        .should.equal(ERC1820_ACCEPT_MAGIC);
+      expect(await this.implementer.canImplementInterfaceForAddress(this.interfaceA, implementee))
+        .to.equal(ERC1820_ACCEPT_MAGIC);
     });
     });
 
 
     it('returns false when interface implementation for non-supported interfaces is queried', async function () {
     it('returns false when interface implementation for non-supported interfaces is queried', async function () {
-      (await this.implementer.canImplementInterfaceForAddress(this.interfaceB, implementee))
-        .should.not.equal(ERC1820_ACCEPT_MAGIC);
+      expect(await this.implementer.canImplementInterfaceForAddress(this.interfaceB, implementee))
+        .to.not.equal(ERC1820_ACCEPT_MAGIC);
     });
     });
 
 
     it('returns false when interface implementation for non-supported addresses is queried', async function () {
     it('returns false when interface implementation for non-supported addresses is queried', async function () {
-      (await this.implementer.canImplementInterfaceForAddress(this.interfaceA, other))
-        .should.not.equal(ERC1820_ACCEPT_MAGIC);
+      expect(await this.implementer.canImplementInterfaceForAddress(this.interfaceA, other))
+        .to.not.equal(ERC1820_ACCEPT_MAGIC);
     });
     });
 
 
     it('can be set as an implementer for supported interfaces in the registry', async function () {
     it('can be set as an implementer for supported interfaces in the registry', async function () {
@@ -55,8 +57,8 @@ contract('ERC1820Implementer', function ([_, registryFunder, implementee, other]
         implementee, this.interfaceA, this.implementer.address, { from: implementee }
         implementee, this.interfaceA, this.implementer.address, { from: implementee }
       );
       );
 
 
-      (await this.registry.getInterfaceImplementer(implementee, this.interfaceA))
-        .should.equal(this.implementer.address);
+      expect(await this.registry.getInterfaceImplementer(implementee, this.interfaceA))
+        .to.equal(this.implementer.address);
     });
     });
   });
   });
 });
 });

+ 5 - 3
test/introspection/SupportsInterface.behavior.js

@@ -1,5 +1,7 @@
 const { makeInterfaceId } = require('openzeppelin-test-helpers');
 const { makeInterfaceId } = require('openzeppelin-test-helpers');
 
 
+const { expect } = require('chai');
+
 const INTERFACES = {
 const INTERFACES = {
   ERC165: [
   ERC165: [
     'supportsInterface(bytes4)',
     'supportsInterface(bytes4)',
@@ -48,11 +50,11 @@ function shouldSupportInterfaces (interfaces = []) {
       describe(k, function () {
       describe(k, function () {
         describe('ERC165\'s supportsInterface(bytes4)', function () {
         describe('ERC165\'s supportsInterface(bytes4)', function () {
           it('should use less than 30k gas', async function () {
           it('should use less than 30k gas', async function () {
-            (await this.contractUnderTest.supportsInterface.estimateGas(interfaceId)).should.be.lte(30000);
+            expect(await this.contractUnderTest.supportsInterface.estimateGas(interfaceId)).to.be.lte(30000);
           });
           });
 
 
           it('should claim support', async function () {
           it('should claim support', async function () {
-            (await this.contractUnderTest.supportsInterface(interfaceId)).should.equal(true);
+            expect(await this.contractUnderTest.supportsInterface(interfaceId)).to.equal(true);
           });
           });
         });
         });
 
 
@@ -60,7 +62,7 @@ function shouldSupportInterfaces (interfaces = []) {
           const fnSig = FN_SIGNATURES[fnName];
           const fnSig = FN_SIGNATURES[fnName];
           describe(fnName, function () {
           describe(fnName, function () {
             it('should be implemented', function () {
             it('should be implemented', function () {
-              this.contractUnderTest.abi.filter(fn => fn.signature === fnSig).length.should.equal(1);
+              expect(this.contractUnderTest.abi.filter(fn => fn.signature === fnSig).length).to.equal(1);
             });
             });
           });
           });
         }
         }

+ 11 - 9
test/lifecycle/Pausable.test.js

@@ -1,6 +1,8 @@
 const { expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 const { expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 const { shouldBehaveLikePublicRole } = require('../behaviors/access/roles/PublicRole.behavior');
 const { shouldBehaveLikePublicRole } = require('../behaviors/access/roles/PublicRole.behavior');
 
 
+const { expect } = require('chai');
+
 const PausableMock = artifacts.require('PausableMock');
 const PausableMock = artifacts.require('PausableMock');
 
 
 contract('Pausable', function ([_, pauser, otherPauser, other, ...otherAccounts]) {
 contract('Pausable', function ([_, pauser, otherPauser, other, ...otherAccounts]) {
@@ -19,27 +21,27 @@ contract('Pausable', function ([_, pauser, otherPauser, other, ...otherAccounts]
 
 
   context('when unpaused', function () {
   context('when unpaused', function () {
     beforeEach(async function () {
     beforeEach(async function () {
-      (await this.pausable.paused()).should.equal(false);
+      expect(await this.pausable.paused()).to.equal(false);
     });
     });
 
 
     it('can perform normal process in non-pause', async function () {
     it('can perform normal process in non-pause', async function () {
-      (await this.pausable.count()).should.be.bignumber.equal('0');
+      expect(await this.pausable.count()).to.be.bignumber.equal('0');
 
 
       await this.pausable.normalProcess({ from: other });
       await this.pausable.normalProcess({ from: other });
-      (await this.pausable.count()).should.be.bignumber.equal('1');
+      expect(await this.pausable.count()).to.be.bignumber.equal('1');
     });
     });
 
 
     it('cannot take drastic measure in non-pause', async function () {
     it('cannot take drastic measure in non-pause', async function () {
       await expectRevert(this.pausable.drasticMeasure({ from: other }),
       await expectRevert(this.pausable.drasticMeasure({ from: other }),
         'Pausable: not paused'
         'Pausable: not paused'
       );
       );
-      (await this.pausable.drasticMeasureTaken()).should.equal(false);
+      expect(await this.pausable.drasticMeasureTaken()).to.equal(false);
     });
     });
 
 
     describe('pausing', function () {
     describe('pausing', function () {
       it('is pausable by the pauser', async function () {
       it('is pausable by the pauser', async function () {
         await this.pausable.pause({ from: pauser });
         await this.pausable.pause({ from: pauser });
-        (await this.pausable.paused()).should.equal(true);
+        expect(await this.pausable.paused()).to.equal(true);
       });
       });
 
 
       it('reverts when pausing from non-pauser', async function () {
       it('reverts when pausing from non-pauser', async function () {
@@ -63,7 +65,7 @@ contract('Pausable', function ([_, pauser, otherPauser, other, ...otherAccounts]
 
 
         it('can take a drastic measure in a pause', async function () {
         it('can take a drastic measure in a pause', async function () {
           await this.pausable.drasticMeasure({ from: other });
           await this.pausable.drasticMeasure({ from: other });
-          (await this.pausable.drasticMeasureTaken()).should.equal(true);
+          expect(await this.pausable.drasticMeasureTaken()).to.equal(true);
         });
         });
 
 
         it('reverts when re-pausing', async function () {
         it('reverts when re-pausing', async function () {
@@ -73,7 +75,7 @@ contract('Pausable', function ([_, pauser, otherPauser, other, ...otherAccounts]
         describe('unpausing', function () {
         describe('unpausing', function () {
           it('is unpausable by the pauser', async function () {
           it('is unpausable by the pauser', async function () {
             await this.pausable.unpause({ from: pauser });
             await this.pausable.unpause({ from: pauser });
-            (await this.pausable.paused()).should.equal(false);
+            expect(await this.pausable.paused()).to.equal(false);
           });
           });
 
 
           it('reverts when unpausing from non-pauser', async function () {
           it('reverts when unpausing from non-pauser', async function () {
@@ -92,9 +94,9 @@ contract('Pausable', function ([_, pauser, otherPauser, other, ...otherAccounts]
             });
             });
 
 
             it('should resume allowing normal process', async function () {
             it('should resume allowing normal process', async function () {
-              (await this.pausable.count()).should.be.bignumber.equal('0');
+              expect(await this.pausable.count()).to.be.bignumber.equal('0');
               await this.pausable.normalProcess({ from: other });
               await this.pausable.normalProcess({ from: other });
-              (await this.pausable.count()).should.be.bignumber.equal('1');
+              expect(await this.pausable.count()).to.be.bignumber.equal('1');
             });
             });
 
 
             it('should prevent drastic measure', async function () {
             it('should prevent drastic measure', async function () {

+ 9 - 7
test/math/Math.test.js

@@ -1,5 +1,7 @@
 const { BN } = require('openzeppelin-test-helpers');
 const { BN } = require('openzeppelin-test-helpers');
 
 
+const { expect } = require('chai');
+
 const MathMock = artifacts.require('MathMock');
 const MathMock = artifacts.require('MathMock');
 
 
 contract('Math', function () {
 contract('Math', function () {
@@ -12,21 +14,21 @@ contract('Math', function () {
 
 
   describe('max', function () {
   describe('max', function () {
     it('is correctly detected in first argument position', async function () {
     it('is correctly detected in first argument position', async function () {
-      (await this.math.max(max, min)).should.be.bignumber.equal(max);
+      expect(await this.math.max(max, min)).to.be.bignumber.equal(max);
     });
     });
 
 
     it('is correctly detected in second argument position', async function () {
     it('is correctly detected in second argument position', async function () {
-      (await this.math.max(min, max)).should.be.bignumber.equal(max);
+      expect(await this.math.max(min, max)).to.be.bignumber.equal(max);
     });
     });
   });
   });
 
 
   describe('min', function () {
   describe('min', function () {
     it('is correctly detected in first argument position', async function () {
     it('is correctly detected in first argument position', async function () {
-      (await this.math.min(min, max)).should.be.bignumber.equal(min);
+      expect(await this.math.min(min, max)).to.be.bignumber.equal(min);
     });
     });
 
 
     it('is correctly detected in second argument position', async function () {
     it('is correctly detected in second argument position', async function () {
-      (await this.math.min(max, min)).should.be.bignumber.equal(min);
+      expect(await this.math.min(max, min)).to.be.bignumber.equal(min);
     });
     });
   });
   });
 
 
@@ -38,19 +40,19 @@ contract('Math', function () {
     it('is correctly calculated with two odd numbers', async function () {
     it('is correctly calculated with two odd numbers', async function () {
       const a = new BN('57417');
       const a = new BN('57417');
       const b = new BN('95431');
       const b = new BN('95431');
-      (await this.math.average(a, b)).should.be.bignumber.equal(bnAverage(a, b));
+      expect(await this.math.average(a, b)).to.be.bignumber.equal(bnAverage(a, b));
     });
     });
 
 
     it('is correctly calculated with two even numbers', async function () {
     it('is correctly calculated with two even numbers', async function () {
       const a = new BN('42304');
       const a = new BN('42304');
       const b = new BN('84346');
       const b = new BN('84346');
-      (await this.math.average(a, b)).should.be.bignumber.equal(bnAverage(a, b));
+      expect(await this.math.average(a, b)).to.be.bignumber.equal(bnAverage(a, b));
     });
     });
 
 
     it('is correctly calculated with one even and one odd number', async function () {
     it('is correctly calculated with one even and one odd number', async function () {
       const a = new BN('57417');
       const a = new BN('57417');
       const b = new BN('84346');
       const b = new BN('84346');
-      (await this.math.average(a, b)).should.be.bignumber.equal(bnAverage(a, b));
+      expect(await this.math.average(a, b)).to.be.bignumber.equal(bnAverage(a, b));
     });
     });
   });
   });
 });
 });

+ 12 - 10
test/math/SafeMath.test.js

@@ -1,6 +1,8 @@
 const { BN, constants, expectRevert } = require('openzeppelin-test-helpers');
 const { BN, constants, expectRevert } = require('openzeppelin-test-helpers');
 const { MAX_UINT256 } = constants;
 const { MAX_UINT256 } = constants;
 
 
+const { expect } = require('chai');
+
 const SafeMathMock = artifacts.require('SafeMathMock');
 const SafeMathMock = artifacts.require('SafeMathMock');
 
 
 contract('SafeMath', function () {
 contract('SafeMath', function () {
@@ -9,8 +11,8 @@ contract('SafeMath', function () {
   });
   });
 
 
   async function testCommutative (fn, lhs, rhs, expected) {
   async function testCommutative (fn, lhs, rhs, expected) {
-    (await fn(lhs, rhs)).should.be.bignumber.equal(expected);
-    (await fn(rhs, lhs)).should.be.bignumber.equal(expected);
+    expect(await fn(lhs, rhs)).to.be.bignumber.equal(expected);
+    expect(await fn(rhs, lhs)).to.be.bignumber.equal(expected);
   }
   }
 
 
   async function testFailsCommutative (fn, lhs, rhs, reason) {
   async function testFailsCommutative (fn, lhs, rhs, reason) {
@@ -39,7 +41,7 @@ contract('SafeMath', function () {
       const a = new BN('5678');
       const a = new BN('5678');
       const b = new BN('1234');
       const b = new BN('1234');
 
 
-      (await this.safeMath.sub(a, b)).should.be.bignumber.equal(a.sub(b));
+      expect(await this.safeMath.sub(a, b)).to.be.bignumber.equal(a.sub(b));
     });
     });
 
 
     it('reverts if subtraction result would be negative', async function () {
     it('reverts if subtraction result would be negative', async function () {
@@ -78,21 +80,21 @@ contract('SafeMath', function () {
       const a = new BN('5678');
       const a = new BN('5678');
       const b = new BN('5678');
       const b = new BN('5678');
 
 
-      (await this.safeMath.div(a, b)).should.be.bignumber.equal(a.div(b));
+      expect(await this.safeMath.div(a, b)).to.be.bignumber.equal(a.div(b));
     });
     });
 
 
     it('divides zero correctly', async function () {
     it('divides zero correctly', async function () {
       const a = new BN('0');
       const a = new BN('0');
       const b = new BN('5678');
       const b = new BN('5678');
 
 
-      (await this.safeMath.div(a, b)).should.be.bignumber.equal('0');
+      expect(await this.safeMath.div(a, b)).to.be.bignumber.equal('0');
     });
     });
 
 
     it('returns complete number result on non-even division', async function () {
     it('returns complete number result on non-even division', async function () {
       const a = new BN('7000');
       const a = new BN('7000');
       const b = new BN('5678');
       const b = new BN('5678');
 
 
-      (await this.safeMath.div(a, b)).should.be.bignumber.equal('1');
+      expect(await this.safeMath.div(a, b)).to.be.bignumber.equal('1');
     });
     });
 
 
     it('reverts on divison by zero', async function () {
     it('reverts on divison by zero', async function () {
@@ -109,28 +111,28 @@ contract('SafeMath', function () {
         const a = new BN('284');
         const a = new BN('284');
         const b = new BN('5678');
         const b = new BN('5678');
 
 
-        (await this.safeMath.mod(a, b)).should.be.bignumber.equal(a.mod(b));
+        expect(await this.safeMath.mod(a, b)).to.be.bignumber.equal(a.mod(b));
       });
       });
 
 
       it('when the dividend is equal to the divisor', async function () {
       it('when the dividend is equal to the divisor', async function () {
         const a = new BN('5678');
         const a = new BN('5678');
         const b = new BN('5678');
         const b = new BN('5678');
 
 
-        (await this.safeMath.mod(a, b)).should.be.bignumber.equal(a.mod(b));
+        expect(await this.safeMath.mod(a, b)).to.be.bignumber.equal(a.mod(b));
       });
       });
 
 
       it('when the dividend is larger than the divisor', async function () {
       it('when the dividend is larger than the divisor', async function () {
         const a = new BN('7000');
         const a = new BN('7000');
         const b = new BN('5678');
         const b = new BN('5678');
 
 
-        (await this.safeMath.mod(a, b)).should.be.bignumber.equal(a.mod(b));
+        expect(await this.safeMath.mod(a, b)).to.be.bignumber.equal(a.mod(b));
       });
       });
 
 
       it('when the dividend is a multiple of the divisor', async function () {
       it('when the dividend is a multiple of the divisor', async function () {
         const a = new BN('17034'); // 17034 == 5678 * 3
         const a = new BN('17034'); // 17034 == 5678 * 3
         const b = new BN('5678');
         const b = new BN('5678');
 
 
-        (await this.safeMath.mod(a, b)).should.be.bignumber.equal(a.mod(b));
+        expect(await this.safeMath.mod(a, b)).to.be.bignumber.equal(a.mod(b));
       });
       });
     });
     });
 
 

+ 7 - 5
test/ownership/Ownable.behavior.js

@@ -1,19 +1,21 @@
 const { constants, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 const { constants, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 const { ZERO_ADDRESS } = constants;
 const { ZERO_ADDRESS } = constants;
 
 
+const { expect } = require('chai');
+
 function shouldBehaveLikeOwnable (owner, [other]) {
 function shouldBehaveLikeOwnable (owner, [other]) {
   describe('as an ownable', function () {
   describe('as an ownable', function () {
     it('should have an owner', async function () {
     it('should have an owner', async function () {
-      (await this.ownable.owner()).should.equal(owner);
+      expect(await this.ownable.owner()).to.equal(owner);
     });
     });
 
 
     it('changes owner after transfer', async function () {
     it('changes owner after transfer', async function () {
-      (await this.ownable.isOwner({ from: other })).should.be.equal(false);
+      expect(await this.ownable.isOwner({ from: other })).to.equal(false);
       const { logs } = await this.ownable.transferOwnership(other, { from: owner });
       const { logs } = await this.ownable.transferOwnership(other, { from: owner });
       expectEvent.inLogs(logs, 'OwnershipTransferred');
       expectEvent.inLogs(logs, 'OwnershipTransferred');
 
 
-      (await this.ownable.owner()).should.equal(other);
-      (await this.ownable.isOwner({ from: other })).should.be.equal(true);
+      expect(await this.ownable.owner()).to.equal(other);
+      expect(await this.ownable.isOwner({ from: other })).to.equal(true);
     });
     });
 
 
     it('should prevent non-owners from transferring', async function () {
     it('should prevent non-owners from transferring', async function () {
@@ -34,7 +36,7 @@ function shouldBehaveLikeOwnable (owner, [other]) {
       const { logs } = await this.ownable.renounceOwnership({ from: owner });
       const { logs } = await this.ownable.renounceOwnership({ from: owner });
       expectEvent.inLogs(logs, 'OwnershipTransferred');
       expectEvent.inLogs(logs, 'OwnershipTransferred');
 
 
-      (await this.ownable.owner()).should.equal(ZERO_ADDRESS);
+      expect(await this.ownable.owner()).to.equal(ZERO_ADDRESS);
     });
     });
 
 
     it('should prevent non-owners from renouncement', async function () {
     it('should prevent non-owners from renouncement', async function () {

+ 4 - 2
test/ownership/Secondary.test.js

@@ -1,6 +1,8 @@
 const { constants, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 const { constants, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 const { ZERO_ADDRESS } = constants;
 const { ZERO_ADDRESS } = constants;
 
 
+const { expect } = require('chai');
+
 const SecondaryMock = artifacts.require('SecondaryMock');
 const SecondaryMock = artifacts.require('SecondaryMock');
 
 
 contract('Secondary', function ([_, primary, newPrimary, other]) {
 contract('Secondary', function ([_, primary, newPrimary, other]) {
@@ -9,7 +11,7 @@ contract('Secondary', function ([_, primary, newPrimary, other]) {
   });
   });
 
 
   it('stores the primary\'s address', async function () {
   it('stores the primary\'s address', async function () {
-    (await this.secondary.primary()).should.equal(primary);
+    expect(await this.secondary.primary()).to.equal(primary);
   });
   });
 
 
   describe('onlyPrimary', function () {
   describe('onlyPrimary', function () {
@@ -28,7 +30,7 @@ contract('Secondary', function ([_, primary, newPrimary, other]) {
     it('makes the recipient the new primary', async function () {
     it('makes the recipient the new primary', async function () {
       const { logs } = await this.secondary.transferPrimary(newPrimary, { from: primary });
       const { logs } = await this.secondary.transferPrimary(newPrimary, { from: primary });
       expectEvent.inLogs(logs, 'PrimaryTransferred', { recipient: newPrimary });
       expectEvent.inLogs(logs, 'PrimaryTransferred', { recipient: newPrimary });
-      (await this.secondary.primary()).should.equal(newPrimary);
+      expect(await this.secondary.primary()).to.equal(newPrimary);
     });
     });
 
 
     it('reverts when transferring to the null address', async function () {
     it('reverts when transferring to the null address', async function () {

+ 14 - 12
test/payment/PaymentSplitter.test.js

@@ -1,6 +1,8 @@
 const { balance, constants, ether, expectEvent, send, expectRevert } = require('openzeppelin-test-helpers');
 const { balance, constants, ether, expectEvent, send, expectRevert } = require('openzeppelin-test-helpers');
 const { ZERO_ADDRESS } = constants;
 const { ZERO_ADDRESS } = constants;
 
 
+const { expect } = require('chai');
+
 const PaymentSplitter = artifacts.require('PaymentSplitter');
 const PaymentSplitter = artifacts.require('PaymentSplitter');
 
 
 contract('PaymentSplitter', function ([_, owner, payee1, payee2, payee3, nonpayee1, payer1]) {
 contract('PaymentSplitter', function ([_, owner, payee1, payee2, payee3, nonpayee1, payer1]) {
@@ -49,28 +51,28 @@ contract('PaymentSplitter', function ([_, owner, payee1, payee2, payee3, nonpaye
     });
     });
 
 
     it('should have total shares', async function () {
     it('should have total shares', async function () {
-      (await this.contract.totalShares()).should.be.bignumber.equal('100');
+      expect(await this.contract.totalShares()).to.be.bignumber.equal('100');
     });
     });
 
 
     it('should have payees', async function () {
     it('should have payees', async function () {
       await Promise.all(this.payees.map(async (payee, index) => {
       await Promise.all(this.payees.map(async (payee, index) => {
-        (await this.contract.payee(index)).should.be.equal(payee);
-        (await this.contract.released(payee)).should.be.bignumber.equal('0');
+        expect(await this.contract.payee(index)).to.equal(payee);
+        expect(await this.contract.released(payee)).to.be.bignumber.equal('0');
       }));
       }));
     });
     });
 
 
     it('should accept payments', async function () {
     it('should accept payments', async function () {
       await send.ether(owner, this.contract.address, amount);
       await send.ether(owner, this.contract.address, amount);
 
 
-      (await balance.current(this.contract.address)).should.be.bignumber.equal(amount);
+      expect(await balance.current(this.contract.address)).to.be.bignumber.equal(amount);
     });
     });
 
 
     it('should store shares if address is payee', async function () {
     it('should store shares if address is payee', async function () {
-      (await this.contract.shares(payee1)).should.be.bignumber.not.equal('0');
+      expect(await this.contract.shares(payee1)).to.be.bignumber.not.equal('0');
     });
     });
 
 
     it('should not store shares if address is not payee', async function () {
     it('should not store shares if address is not payee', async function () {
-      (await this.contract.shares(nonpayee1)).should.be.bignumber.equal('0');
+      expect(await this.contract.shares(nonpayee1)).to.be.bignumber.equal('0');
     });
     });
 
 
     it('should throw if no funds to claim', async function () {
     it('should throw if no funds to claim', async function () {
@@ -91,33 +93,33 @@ contract('PaymentSplitter', function ([_, owner, payee1, payee2, payee3, nonpaye
 
 
       // receive funds
       // receive funds
       const initBalance = await balance.current(this.contract.address);
       const initBalance = await balance.current(this.contract.address);
-      initBalance.should.be.bignumber.equal(amount);
+      expect(initBalance).to.be.bignumber.equal(amount);
 
 
       // distribute to payees
       // distribute to payees
 
 
       const initAmount1 = await balance.current(payee1);
       const initAmount1 = await balance.current(payee1);
       const { logs: logs1 } = await this.contract.release(payee1, { gasPrice: 0 });
       const { logs: logs1 } = await this.contract.release(payee1, { gasPrice: 0 });
       const profit1 = (await balance.current(payee1)).sub(initAmount1);
       const profit1 = (await balance.current(payee1)).sub(initAmount1);
-      profit1.should.be.bignumber.equal(ether('0.20'));
+      expect(profit1).to.be.bignumber.equal(ether('0.20'));
       expectEvent.inLogs(logs1, 'PaymentReleased', { to: payee1, amount: profit1 });
       expectEvent.inLogs(logs1, 'PaymentReleased', { to: payee1, amount: profit1 });
 
 
       const initAmount2 = await balance.current(payee2);
       const initAmount2 = await balance.current(payee2);
       const { logs: logs2 } = await this.contract.release(payee2, { gasPrice: 0 });
       const { logs: logs2 } = await this.contract.release(payee2, { gasPrice: 0 });
       const profit2 = (await balance.current(payee2)).sub(initAmount2);
       const profit2 = (await balance.current(payee2)).sub(initAmount2);
-      profit2.should.be.bignumber.equal(ether('0.10'));
+      expect(profit2).to.be.bignumber.equal(ether('0.10'));
       expectEvent.inLogs(logs2, 'PaymentReleased', { to: payee2, amount: profit2 });
       expectEvent.inLogs(logs2, 'PaymentReleased', { to: payee2, amount: profit2 });
 
 
       const initAmount3 = await balance.current(payee3);
       const initAmount3 = await balance.current(payee3);
       const { logs: logs3 } = await this.contract.release(payee3, { gasPrice: 0 });
       const { logs: logs3 } = await this.contract.release(payee3, { gasPrice: 0 });
       const profit3 = (await balance.current(payee3)).sub(initAmount3);
       const profit3 = (await balance.current(payee3)).sub(initAmount3);
-      profit3.should.be.bignumber.equal(ether('0.70'));
+      expect(profit3).to.be.bignumber.equal(ether('0.70'));
       expectEvent.inLogs(logs3, 'PaymentReleased', { to: payee3, amount: profit3 });
       expectEvent.inLogs(logs3, 'PaymentReleased', { to: payee3, amount: profit3 });
 
 
       // end balance should be zero
       // end balance should be zero
-      (await balance.current(this.contract.address)).should.be.bignumber.equal('0');
+      expect(await balance.current(this.contract.address)).to.be.bignumber.equal('0');
 
 
       // check correct funds released accounting
       // check correct funds released accounting
-      (await this.contract.totalReleased()).should.be.bignumber.equal(initBalance);
+      expect(await this.contract.totalReleased()).to.be.bignumber.equal(initBalance);
     });
     });
   });
   });
 });
 });

+ 6 - 4
test/payment/PullPayment.test.js

@@ -1,5 +1,7 @@
 const { balance, ether } = require('openzeppelin-test-helpers');
 const { balance, ether } = require('openzeppelin-test-helpers');
 
 
+const { expect } = require('chai');
+
 const PullPaymentMock = artifacts.require('PullPaymentMock');
 const PullPaymentMock = artifacts.require('PullPaymentMock');
 
 
 contract('PullPayment', function ([_, payer, payee1, payee2]) {
 contract('PullPayment', function ([_, payer, payee1, payee2]) {
@@ -11,22 +13,22 @@ contract('PullPayment', function ([_, payer, payee1, payee2]) {
 
 
   it('can record an async payment correctly', async function () {
   it('can record an async payment correctly', async function () {
     await this.contract.callTransfer(payee1, 100, { from: payer });
     await this.contract.callTransfer(payee1, 100, { from: payer });
-    (await this.contract.payments(payee1)).should.be.bignumber.equal('100');
+    expect(await this.contract.payments(payee1)).to.be.bignumber.equal('100');
   });
   });
 
 
   it('can add multiple balances on one account', async function () {
   it('can add multiple balances on one account', async function () {
     await this.contract.callTransfer(payee1, 200, { from: payer });
     await this.contract.callTransfer(payee1, 200, { from: payer });
     await this.contract.callTransfer(payee1, 300, { from: payer });
     await this.contract.callTransfer(payee1, 300, { from: payer });
-    (await this.contract.payments(payee1)).should.be.bignumber.equal('500');
+    expect(await this.contract.payments(payee1)).to.be.bignumber.equal('500');
   });
   });
 
 
   it('can add balances on multiple accounts', async function () {
   it('can add balances on multiple accounts', async function () {
     await this.contract.callTransfer(payee1, 200, { from: payer });
     await this.contract.callTransfer(payee1, 200, { from: payer });
     await this.contract.callTransfer(payee2, 300, { from: payer });
     await this.contract.callTransfer(payee2, 300, { from: payer });
 
 
-    (await this.contract.payments(payee1)).should.be.bignumber.equal('200');
+    expect(await this.contract.payments(payee1)).to.be.bignumber.equal('200');
 
 
-    (await this.contract.payments(payee2)).should.be.bignumber.equal('300');
+    expect(await this.contract.payments(payee2)).to.be.bignumber.equal('300');
   });
   });
 
 
   it('can withdraw payment', async function () {
   it('can withdraw payment', async function () {

+ 12 - 10
test/payment/escrow/Escrow.behavior.js

@@ -1,5 +1,7 @@
 const { balance, ether, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 const { balance, ether, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 
 
+const { expect } = require('chai');
+
 function shouldBehaveLikeEscrow (primary, [payee1, payee2]) {
 function shouldBehaveLikeEscrow (primary, [payee1, payee2]) {
   const amount = ether('42');
   const amount = ether('42');
 
 
@@ -8,9 +10,9 @@ function shouldBehaveLikeEscrow (primary, [payee1, payee2]) {
       it('can accept a single deposit', async function () {
       it('can accept a single deposit', async function () {
         await this.escrow.deposit(payee1, { from: primary, value: amount });
         await this.escrow.deposit(payee1, { from: primary, value: amount });
 
 
-        (await balance.current(this.escrow.address)).should.be.bignumber.equal(amount);
+        expect(await balance.current(this.escrow.address)).to.be.bignumber.equal(amount);
 
 
-        (await this.escrow.depositsOf(payee1)).should.be.bignumber.equal(amount);
+        expect(await this.escrow.depositsOf(payee1)).to.be.bignumber.equal(amount);
       });
       });
 
 
       it('can accept an empty deposit', async function () {
       it('can accept an empty deposit', async function () {
@@ -35,20 +37,20 @@ function shouldBehaveLikeEscrow (primary, [payee1, payee2]) {
         await this.escrow.deposit(payee1, { from: primary, value: amount });
         await this.escrow.deposit(payee1, { from: primary, value: amount });
         await this.escrow.deposit(payee1, { from: primary, value: amount.muln(2) });
         await this.escrow.deposit(payee1, { from: primary, value: amount.muln(2) });
 
 
-        (await balance.current(this.escrow.address)).should.be.bignumber.equal(amount.muln(3));
+        expect(await balance.current(this.escrow.address)).to.be.bignumber.equal(amount.muln(3));
 
 
-        (await this.escrow.depositsOf(payee1)).should.be.bignumber.equal(amount.muln(3));
+        expect(await this.escrow.depositsOf(payee1)).to.be.bignumber.equal(amount.muln(3));
       });
       });
 
 
       it('can track deposits to multiple accounts', async function () {
       it('can track deposits to multiple accounts', async function () {
         await this.escrow.deposit(payee1, { from: primary, value: amount });
         await this.escrow.deposit(payee1, { from: primary, value: amount });
         await this.escrow.deposit(payee2, { from: primary, value: amount.muln(2) });
         await this.escrow.deposit(payee2, { from: primary, value: amount.muln(2) });
 
 
-        (await balance.current(this.escrow.address)).should.be.bignumber.equal(amount.muln(3));
+        expect(await balance.current(this.escrow.address)).to.be.bignumber.equal(amount.muln(3));
 
 
-        (await this.escrow.depositsOf(payee1)).should.be.bignumber.equal(amount);
+        expect(await this.escrow.depositsOf(payee1)).to.be.bignumber.equal(amount);
 
 
-        (await this.escrow.depositsOf(payee2)).should.be.bignumber.equal(amount.muln(2));
+        expect(await this.escrow.depositsOf(payee2)).to.be.bignumber.equal(amount.muln(2));
       });
       });
     });
     });
 
 
@@ -59,10 +61,10 @@ function shouldBehaveLikeEscrow (primary, [payee1, payee2]) {
         await this.escrow.deposit(payee1, { from: primary, value: amount });
         await this.escrow.deposit(payee1, { from: primary, value: amount });
         await this.escrow.withdraw(payee1, { from: primary });
         await this.escrow.withdraw(payee1, { from: primary });
 
 
-        (await balanceTracker.delta()).should.be.bignumber.equal(amount);
+        expect(await balanceTracker.delta()).to.be.bignumber.equal(amount);
 
 
-        (await balance.current(this.escrow.address)).should.be.bignumber.equal('0');
-        (await this.escrow.depositsOf(payee1)).should.be.bignumber.equal('0');
+        expect(await balance.current(this.escrow.address)).to.be.bignumber.equal('0');
+        expect(await this.escrow.depositsOf(payee1)).to.be.bignumber.equal('0');
       });
       });
 
 
       it('can do an empty withdrawal', async function () {
       it('can do an empty withdrawal', async function () {

+ 7 - 5
test/payment/escrow/RefundEscrow.test.js

@@ -1,6 +1,8 @@
 const { balance, constants, ether, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 const { balance, constants, ether, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 const { ZERO_ADDRESS } = constants;
 const { ZERO_ADDRESS } = constants;
 
 
+const { expect } = require('chai');
+
 const RefundEscrow = artifacts.require('RefundEscrow');
 const RefundEscrow = artifacts.require('RefundEscrow');
 
 
 contract('RefundEscrow', function ([_, primary, beneficiary, refundee1, refundee2]) {
 contract('RefundEscrow', function ([_, primary, beneficiary, refundee1, refundee2]) {
@@ -20,14 +22,14 @@ contract('RefundEscrow', function ([_, primary, beneficiary, refundee1, refundee
 
 
     context('active state', function () {
     context('active state', function () {
       it('has beneficiary and state', async function () {
       it('has beneficiary and state', async function () {
-        (await this.escrow.beneficiary()).should.be.equal(beneficiary);
-        (await this.escrow.state()).should.be.bignumber.equal('0');
+        expect(await this.escrow.beneficiary()).to.equal(beneficiary);
+        expect(await this.escrow.state()).to.be.bignumber.equal('0');
       });
       });
 
 
       it('accepts deposits', async function () {
       it('accepts deposits', async function () {
         await this.escrow.deposit(refundee1, { from: primary, value: amount });
         await this.escrow.deposit(refundee1, { from: primary, value: amount });
 
 
-        (await this.escrow.depositsOf(refundee1)).should.be.bignumber.equal(amount);
+        expect(await this.escrow.depositsOf(refundee1)).to.be.bignumber.equal(amount);
       });
       });
 
 
       it('does not refund refundees', async function () {
       it('does not refund refundees', async function () {
@@ -76,7 +78,7 @@ contract('RefundEscrow', function ([_, primary, beneficiary, refundee1, refundee
       it('allows beneficiary withdrawal', async function () {
       it('allows beneficiary withdrawal', async function () {
         const balanceTracker = await balance.tracker(beneficiary);
         const balanceTracker = await balance.tracker(beneficiary);
         await this.escrow.beneficiaryWithdraw();
         await this.escrow.beneficiaryWithdraw();
-        (await balanceTracker.delta()).should.be.bignumber.equal(amount.muln(refundees.length));
+        expect(await balanceTracker.delta()).to.be.bignumber.equal(amount.muln(refundees.length));
       });
       });
 
 
       it('prevents entering the refund state', async function () {
       it('prevents entering the refund state', async function () {
@@ -118,7 +120,7 @@ contract('RefundEscrow', function ([_, primary, beneficiary, refundee1, refundee
         for (const refundee of [refundee1, refundee2]) {
         for (const refundee of [refundee1, refundee2]) {
           const balanceTracker = await balance.tracker(refundee);
           const balanceTracker = await balance.tracker(refundee);
           await this.escrow.withdraw(refundee, { from: primary });
           await this.escrow.withdraw(refundee, { from: primary });
-          (await balanceTracker.delta()).should.be.bignumber.equal(amount);
+          expect(await balanceTracker.delta()).to.be.bignumber.equal(amount);
         }
         }
       });
       });
 
 

+ 15 - 14
test/token/ERC20/ERC20.behavior.js

@@ -1,23 +1,24 @@
 const { BN, constants, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 const { BN, constants, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
+const { expect } = require('chai');
 const { ZERO_ADDRESS } = constants;
 const { ZERO_ADDRESS } = constants;
 
 
 function shouldBehaveLikeERC20 (errorPrefix, initialSupply, initialHolder, recipient, anotherAccount) {
 function shouldBehaveLikeERC20 (errorPrefix, initialSupply, initialHolder, recipient, anotherAccount) {
   describe('total supply', function () {
   describe('total supply', function () {
     it('returns the total amount of tokens', async function () {
     it('returns the total amount of tokens', async function () {
-      (await this.token.totalSupply()).should.be.bignumber.equal(initialSupply);
+      expect(await this.token.totalSupply()).to.be.bignumber.equal(initialSupply);
     });
     });
   });
   });
 
 
   describe('balanceOf', function () {
   describe('balanceOf', function () {
     describe('when the requested account has no tokens', function () {
     describe('when the requested account has no tokens', function () {
       it('returns zero', async function () {
       it('returns zero', async function () {
-        (await this.token.balanceOf(anotherAccount)).should.be.bignumber.equal('0');
+        expect(await this.token.balanceOf(anotherAccount)).to.be.bignumber.equal('0');
       });
       });
     });
     });
 
 
     describe('when the requested account has some tokens', function () {
     describe('when the requested account has some tokens', function () {
       it('returns the total amount of tokens', async function () {
       it('returns the total amount of tokens', async function () {
-        (await this.token.balanceOf(initialHolder)).should.be.bignumber.equal(initialSupply);
+        expect(await this.token.balanceOf(initialHolder)).to.be.bignumber.equal(initialSupply);
       });
       });
     });
     });
   });
   });
@@ -50,15 +51,15 @@ function shouldBehaveLikeERC20 (errorPrefix, initialSupply, initialHolder, recip
             it('transfers the requested amount', async function () {
             it('transfers the requested amount', async function () {
               await this.token.transferFrom(tokenOwner, to, amount, { from: spender });
               await this.token.transferFrom(tokenOwner, to, amount, { from: spender });
 
 
-              (await this.token.balanceOf(tokenOwner)).should.be.bignumber.equal('0');
+              expect(await this.token.balanceOf(tokenOwner)).to.be.bignumber.equal('0');
 
 
-              (await this.token.balanceOf(to)).should.be.bignumber.equal(amount);
+              expect(await this.token.balanceOf(to)).to.be.bignumber.equal(amount);
             });
             });
 
 
             it('decreases the spender allowance', async function () {
             it('decreases the spender allowance', async function () {
               await this.token.transferFrom(tokenOwner, to, amount, { from: spender });
               await this.token.transferFrom(tokenOwner, to, amount, { from: spender });
 
 
-              (await this.token.allowance(tokenOwner, spender)).should.be.bignumber.equal('0');
+              expect(await this.token.allowance(tokenOwner, spender)).to.be.bignumber.equal('0');
             });
             });
 
 
             it('emits a transfer event', async function () {
             it('emits a transfer event', async function () {
@@ -176,9 +177,9 @@ function shouldBehaveLikeERC20Transfer (errorPrefix, from, to, balance, transfer
       it('transfers the requested amount', async function () {
       it('transfers the requested amount', async function () {
         await transfer.call(this, from, to, amount);
         await transfer.call(this, from, to, amount);
 
 
-        (await this.token.balanceOf(from)).should.be.bignumber.equal('0');
+        expect(await this.token.balanceOf(from)).to.be.bignumber.equal('0');
 
 
-        (await this.token.balanceOf(to)).should.be.bignumber.equal(amount);
+        expect(await this.token.balanceOf(to)).to.be.bignumber.equal(amount);
       });
       });
 
 
       it('emits a transfer event', async function () {
       it('emits a transfer event', async function () {
@@ -198,9 +199,9 @@ function shouldBehaveLikeERC20Transfer (errorPrefix, from, to, balance, transfer
       it('transfers the requested amount', async function () {
       it('transfers the requested amount', async function () {
         await transfer.call(this, from, to, amount);
         await transfer.call(this, from, to, amount);
 
 
-        (await this.token.balanceOf(from)).should.be.bignumber.equal(balance);
+        expect(await this.token.balanceOf(from)).to.be.bignumber.equal(balance);
 
 
-        (await this.token.balanceOf(to)).should.be.bignumber.equal('0');
+        expect(await this.token.balanceOf(to)).to.be.bignumber.equal('0');
       });
       });
 
 
       it('emits a transfer event', async function () {
       it('emits a transfer event', async function () {
@@ -243,7 +244,7 @@ function shouldBehaveLikeERC20Approve (errorPrefix, owner, spender, supply, appr
         it('approves the requested amount', async function () {
         it('approves the requested amount', async function () {
           await approve.call(this, owner, spender, amount);
           await approve.call(this, owner, spender, amount);
 
 
-          (await this.token.allowance(owner, spender)).should.be.bignumber.equal(amount);
+          expect(await this.token.allowance(owner, spender)).to.be.bignumber.equal(amount);
         });
         });
       });
       });
 
 
@@ -255,7 +256,7 @@ function shouldBehaveLikeERC20Approve (errorPrefix, owner, spender, supply, appr
         it('approves the requested amount and replaces the previous one', async function () {
         it('approves the requested amount and replaces the previous one', async function () {
           await approve.call(this, owner, spender, amount);
           await approve.call(this, owner, spender, amount);
 
 
-          (await this.token.allowance(owner, spender)).should.be.bignumber.equal(amount);
+          expect(await this.token.allowance(owner, spender)).to.be.bignumber.equal(amount);
         });
         });
       });
       });
     });
     });
@@ -277,7 +278,7 @@ function shouldBehaveLikeERC20Approve (errorPrefix, owner, spender, supply, appr
         it('approves the requested amount', async function () {
         it('approves the requested amount', async function () {
           await approve.call(this, owner, spender, amount);
           await approve.call(this, owner, spender, amount);
 
 
-          (await this.token.allowance(owner, spender)).should.be.bignumber.equal(amount);
+          expect(await this.token.allowance(owner, spender)).to.be.bignumber.equal(amount);
         });
         });
       });
       });
 
 
@@ -289,7 +290,7 @@ function shouldBehaveLikeERC20Approve (errorPrefix, owner, spender, supply, appr
         it('approves the requested amount and replaces the previous one', async function () {
         it('approves the requested amount and replaces the previous one', async function () {
           await approve.call(this, owner, spender, amount);
           await approve.call(this, owner, spender, amount);
 
 
-          (await this.token.allowance(owner, spender)).should.be.bignumber.equal(amount);
+          expect(await this.token.allowance(owner, spender)).to.be.bignumber.equal(amount);
         });
         });
       });
       });
     });
     });

+ 17 - 16
test/token/ERC20/ERC20.test.js

@@ -1,4 +1,5 @@
 const { BN, constants, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 const { BN, constants, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
+const { expect } = require('chai');
 const { ZERO_ADDRESS } = constants;
 const { ZERO_ADDRESS } = constants;
 
 
 const {
 const {
@@ -51,12 +52,12 @@ contract('ERC20', function ([_, initialHolder, recipient, anotherAccount]) {
           it('decreases the spender allowance subtracting the requested amount', async function () {
           it('decreases the spender allowance subtracting the requested amount', async function () {
             await this.token.decreaseAllowance(spender, approvedAmount.subn(1), { from: initialHolder });
             await this.token.decreaseAllowance(spender, approvedAmount.subn(1), { from: initialHolder });
 
 
-            (await this.token.allowance(initialHolder, spender)).should.be.bignumber.equal('1');
+            expect(await this.token.allowance(initialHolder, spender)).to.be.bignumber.equal('1');
           });
           });
 
 
           it('sets the allowance to zero when all allowance is removed', async function () {
           it('sets the allowance to zero when all allowance is removed', async function () {
             await this.token.decreaseAllowance(spender, approvedAmount, { from: initialHolder });
             await this.token.decreaseAllowance(spender, approvedAmount, { from: initialHolder });
-            (await this.token.allowance(initialHolder, spender)).should.be.bignumber.equal('0');
+            expect(await this.token.allowance(initialHolder, spender)).to.be.bignumber.equal('0');
           });
           });
 
 
           it('reverts when more than the full allowance is removed', async function () {
           it('reverts when more than the full allowance is removed', async function () {
@@ -114,7 +115,7 @@ contract('ERC20', function ([_, initialHolder, recipient, anotherAccount]) {
           it('approves the requested amount', async function () {
           it('approves the requested amount', async function () {
             await this.token.increaseAllowance(spender, amount, { from: initialHolder });
             await this.token.increaseAllowance(spender, amount, { from: initialHolder });
 
 
-            (await this.token.allowance(initialHolder, spender)).should.be.bignumber.equal(amount);
+            expect(await this.token.allowance(initialHolder, spender)).to.be.bignumber.equal(amount);
           });
           });
         });
         });
 
 
@@ -126,7 +127,7 @@ contract('ERC20', function ([_, initialHolder, recipient, anotherAccount]) {
           it('increases the spender allowance adding the requested amount', async function () {
           it('increases the spender allowance adding the requested amount', async function () {
             await this.token.increaseAllowance(spender, amount, { from: initialHolder });
             await this.token.increaseAllowance(spender, amount, { from: initialHolder });
 
 
-            (await this.token.allowance(initialHolder, spender)).should.be.bignumber.equal(amount.addn(1));
+            expect(await this.token.allowance(initialHolder, spender)).to.be.bignumber.equal(amount.addn(1));
           });
           });
         });
         });
       });
       });
@@ -148,7 +149,7 @@ contract('ERC20', function ([_, initialHolder, recipient, anotherAccount]) {
           it('approves the requested amount', async function () {
           it('approves the requested amount', async function () {
             await this.token.increaseAllowance(spender, amount, { from: initialHolder });
             await this.token.increaseAllowance(spender, amount, { from: initialHolder });
 
 
-            (await this.token.allowance(initialHolder, spender)).should.be.bignumber.equal(amount);
+            expect(await this.token.allowance(initialHolder, spender)).to.be.bignumber.equal(amount);
           });
           });
         });
         });
 
 
@@ -160,7 +161,7 @@ contract('ERC20', function ([_, initialHolder, recipient, anotherAccount]) {
           it('increases the spender allowance adding the requested amount', async function () {
           it('increases the spender allowance adding the requested amount', async function () {
             await this.token.increaseAllowance(spender, amount, { from: initialHolder });
             await this.token.increaseAllowance(spender, amount, { from: initialHolder });
 
 
-            (await this.token.allowance(initialHolder, spender)).should.be.bignumber.equal(amount.addn(1));
+            expect(await this.token.allowance(initialHolder, spender)).to.be.bignumber.equal(amount.addn(1));
           });
           });
         });
         });
       });
       });
@@ -193,11 +194,11 @@ contract('ERC20', function ([_, initialHolder, recipient, anotherAccount]) {
 
 
       it('increments totalSupply', async function () {
       it('increments totalSupply', async function () {
         const expectedSupply = initialSupply.add(amount);
         const expectedSupply = initialSupply.add(amount);
-        (await this.token.totalSupply()).should.be.bignumber.equal(expectedSupply);
+        expect(await this.token.totalSupply()).to.be.bignumber.equal(expectedSupply);
       });
       });
 
 
       it('increments recipient balance', async function () {
       it('increments recipient balance', async function () {
-        (await this.token.balanceOf(recipient)).should.be.bignumber.equal(amount);
+        expect(await this.token.balanceOf(recipient)).to.be.bignumber.equal(amount);
       });
       });
 
 
       it('emits Transfer event', async function () {
       it('emits Transfer event', async function () {
@@ -206,7 +207,7 @@ contract('ERC20', function ([_, initialHolder, recipient, anotherAccount]) {
           to: recipient,
           to: recipient,
         });
         });
 
 
-        event.args.value.should.be.bignumber.equal(amount);
+        expect(event.args.value).to.be.bignumber.equal(amount);
       });
       });
     });
     });
   });
   });
@@ -233,12 +234,12 @@ contract('ERC20', function ([_, initialHolder, recipient, anotherAccount]) {
 
 
           it('decrements totalSupply', async function () {
           it('decrements totalSupply', async function () {
             const expectedSupply = initialSupply.sub(amount);
             const expectedSupply = initialSupply.sub(amount);
-            (await this.token.totalSupply()).should.be.bignumber.equal(expectedSupply);
+            expect(await this.token.totalSupply()).to.be.bignumber.equal(expectedSupply);
           });
           });
 
 
           it('decrements initialHolder balance', async function () {
           it('decrements initialHolder balance', async function () {
             const expectedBalance = initialSupply.sub(amount);
             const expectedBalance = initialSupply.sub(amount);
-            (await this.token.balanceOf(initialHolder)).should.be.bignumber.equal(expectedBalance);
+            expect(await this.token.balanceOf(initialHolder)).to.be.bignumber.equal(expectedBalance);
           });
           });
 
 
           it('emits Transfer event', async function () {
           it('emits Transfer event', async function () {
@@ -247,7 +248,7 @@ contract('ERC20', function ([_, initialHolder, recipient, anotherAccount]) {
               to: ZERO_ADDRESS,
               to: ZERO_ADDRESS,
             });
             });
 
 
-            event.args.value.should.be.bignumber.equal(amount);
+            expect(event.args.value).to.be.bignumber.equal(amount);
           });
           });
         });
         });
       };
       };
@@ -294,17 +295,17 @@ contract('ERC20', function ([_, initialHolder, recipient, anotherAccount]) {
 
 
           it('decrements totalSupply', async function () {
           it('decrements totalSupply', async function () {
             const expectedSupply = initialSupply.sub(amount);
             const expectedSupply = initialSupply.sub(amount);
-            (await this.token.totalSupply()).should.be.bignumber.equal(expectedSupply);
+            expect(await this.token.totalSupply()).to.be.bignumber.equal(expectedSupply);
           });
           });
 
 
           it('decrements initialHolder balance', async function () {
           it('decrements initialHolder balance', async function () {
             const expectedBalance = initialSupply.sub(amount);
             const expectedBalance = initialSupply.sub(amount);
-            (await this.token.balanceOf(initialHolder)).should.be.bignumber.equal(expectedBalance);
+            expect(await this.token.balanceOf(initialHolder)).to.be.bignumber.equal(expectedBalance);
           });
           });
 
 
           it('decrements spender allowance', async function () {
           it('decrements spender allowance', async function () {
             const expectedAllowance = allowance.sub(amount);
             const expectedAllowance = allowance.sub(amount);
-            (await this.token.allowance(initialHolder, spender)).should.be.bignumber.equal(expectedAllowance);
+            expect(await this.token.allowance(initialHolder, spender)).to.be.bignumber.equal(expectedAllowance);
           });
           });
 
 
           it('emits a Transfer event', async function () {
           it('emits a Transfer event', async function () {
@@ -313,7 +314,7 @@ contract('ERC20', function ([_, initialHolder, recipient, anotherAccount]) {
               to: ZERO_ADDRESS,
               to: ZERO_ADDRESS,
             });
             });
 
 
-            event.args.value.should.be.bignumber.equal(amount);
+            expect(event.args.value).to.be.bignumber.equal(amount);
           });
           });
 
 
           it('emits an Approval event', async function () {
           it('emits an Approval event', async function () {

+ 5 - 3
test/token/ERC20/ERC20Detailed.test.js

@@ -1,5 +1,7 @@
 const { BN } = require('openzeppelin-test-helpers');
 const { BN } = require('openzeppelin-test-helpers');
 
 
+const { expect } = require('chai');
+
 const ERC20DetailedMock = artifacts.require('ERC20DetailedMock');
 const ERC20DetailedMock = artifacts.require('ERC20DetailedMock');
 
 
 contract('ERC20Detailed', function () {
 contract('ERC20Detailed', function () {
@@ -12,14 +14,14 @@ contract('ERC20Detailed', function () {
   });
   });
 
 
   it('has a name', async function () {
   it('has a name', async function () {
-    (await this.detailedERC20.name()).should.be.equal(_name);
+    expect(await this.detailedERC20.name()).to.equal(_name);
   });
   });
 
 
   it('has a symbol', async function () {
   it('has a symbol', async function () {
-    (await this.detailedERC20.symbol()).should.be.equal(_symbol);
+    expect(await this.detailedERC20.symbol()).to.equal(_symbol);
   });
   });
 
 
   it('has an amount of decimals', async function () {
   it('has an amount of decimals', async function () {
-    (await this.detailedERC20.decimals()).should.be.bignumber.equal(_decimals);
+    expect(await this.detailedERC20.decimals()).to.be.bignumber.equal(_decimals);
   });
   });
 });
 });

+ 21 - 19
test/token/ERC20/ERC20Pausable.test.js

@@ -1,5 +1,7 @@
 const { BN, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 const { BN, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 
 
+const { expect } = require('chai');
+
 const ERC20PausableMock = artifacts.require('ERC20PausableMock');
 const ERC20PausableMock = artifacts.require('ERC20PausableMock');
 const { shouldBehaveLikePublicRole } = require('../../behaviors/access/roles/PublicRole.behavior');
 const { shouldBehaveLikePublicRole } = require('../../behaviors/access/roles/PublicRole.behavior');
 
 
@@ -26,7 +28,7 @@ contract('ERC20Pausable', function ([_, pauser, otherPauser, recipient, anotherA
       describe('when the token is unpaused', function () {
       describe('when the token is unpaused', function () {
         it('pauses the token', async function () {
         it('pauses the token', async function () {
           await this.token.pause({ from });
           await this.token.pause({ from });
-          (await this.token.paused()).should.equal(true);
+          expect(await this.token.paused()).to.equal(true);
         });
         });
 
 
         it('emits a Pause event', async function () {
         it('emits a Pause event', async function () {
@@ -69,7 +71,7 @@ contract('ERC20Pausable', function ([_, pauser, otherPauser, recipient, anotherA
 
 
         it('unpauses the token', async function () {
         it('unpauses the token', async function () {
           await this.token.unpause({ from });
           await this.token.unpause({ from });
-          (await this.token.paused()).should.equal(false);
+          expect(await this.token.paused()).to.equal(false);
         });
         });
 
 
         it('emits an Unpause event', async function () {
         it('emits an Unpause event', async function () {
@@ -102,18 +104,18 @@ contract('ERC20Pausable', function ([_, pauser, otherPauser, recipient, anotherA
 
 
     describe('paused', function () {
     describe('paused', function () {
       it('is not paused by default', async function () {
       it('is not paused by default', async function () {
-        (await this.token.paused({ from })).should.equal(false);
+        expect(await this.token.paused({ from })).to.equal(false);
       });
       });
 
 
       it('is paused after being paused', async function () {
       it('is paused after being paused', async function () {
         await this.token.pause({ from });
         await this.token.pause({ from });
-        (await this.token.paused({ from })).should.equal(true);
+        expect(await this.token.paused({ from })).to.equal(true);
       });
       });
 
 
       it('is not paused after being paused and then unpaused', async function () {
       it('is not paused after being paused and then unpaused', async function () {
         await this.token.pause({ from });
         await this.token.pause({ from });
         await this.token.unpause({ from });
         await this.token.unpause({ from });
-        (await this.token.paused()).should.equal(false);
+        expect(await this.token.paused()).to.equal(false);
       });
       });
     });
     });
 
 
@@ -121,8 +123,8 @@ contract('ERC20Pausable', function ([_, pauser, otherPauser, recipient, anotherA
       it('allows to transfer when unpaused', async function () {
       it('allows to transfer when unpaused', async function () {
         await this.token.transfer(recipient, initialSupply, { from: pauser });
         await this.token.transfer(recipient, initialSupply, { from: pauser });
 
 
-        (await this.token.balanceOf(pauser)).should.be.bignumber.equal('0');
-        (await this.token.balanceOf(recipient)).should.be.bignumber.equal(initialSupply);
+        expect(await this.token.balanceOf(pauser)).to.be.bignumber.equal('0');
+        expect(await this.token.balanceOf(recipient)).to.be.bignumber.equal(initialSupply);
       });
       });
 
 
       it('allows to transfer when paused and then unpaused', async function () {
       it('allows to transfer when paused and then unpaused', async function () {
@@ -131,8 +133,8 @@ contract('ERC20Pausable', function ([_, pauser, otherPauser, recipient, anotherA
 
 
         await this.token.transfer(recipient, initialSupply, { from: pauser });
         await this.token.transfer(recipient, initialSupply, { from: pauser });
 
 
-        (await this.token.balanceOf(pauser)).should.be.bignumber.equal('0');
-        (await this.token.balanceOf(recipient)).should.be.bignumber.equal(initialSupply);
+        expect(await this.token.balanceOf(pauser)).to.be.bignumber.equal('0');
+        expect(await this.token.balanceOf(recipient)).to.be.bignumber.equal(initialSupply);
       });
       });
 
 
       it('reverts when trying to transfer when paused', async function () {
       it('reverts when trying to transfer when paused', async function () {
@@ -150,7 +152,7 @@ contract('ERC20Pausable', function ([_, pauser, otherPauser, recipient, anotherA
       it('allows to approve when unpaused', async function () {
       it('allows to approve when unpaused', async function () {
         await this.token.approve(anotherAccount, allowance, { from: pauser });
         await this.token.approve(anotherAccount, allowance, { from: pauser });
 
 
-        (await this.token.allowance(pauser, anotherAccount)).should.be.bignumber.equal(allowance);
+        expect(await this.token.allowance(pauser, anotherAccount)).to.be.bignumber.equal(allowance);
       });
       });
 
 
       it('allows to approve when paused and then unpaused', async function () {
       it('allows to approve when paused and then unpaused', async function () {
@@ -159,7 +161,7 @@ contract('ERC20Pausable', function ([_, pauser, otherPauser, recipient, anotherA
 
 
         await this.token.approve(anotherAccount, allowance, { from: pauser });
         await this.token.approve(anotherAccount, allowance, { from: pauser });
 
 
-        (await this.token.allowance(pauser, anotherAccount)).should.be.bignumber.equal(allowance);
+        expect(await this.token.allowance(pauser, anotherAccount)).to.be.bignumber.equal(allowance);
       });
       });
 
 
       it('reverts when trying to approve when paused', async function () {
       it('reverts when trying to approve when paused', async function () {
@@ -181,8 +183,8 @@ contract('ERC20Pausable', function ([_, pauser, otherPauser, recipient, anotherA
       it('allows to transfer from when unpaused', async function () {
       it('allows to transfer from when unpaused', async function () {
         await this.token.transferFrom(pauser, recipient, allowance, { from: anotherAccount });
         await this.token.transferFrom(pauser, recipient, allowance, { from: anotherAccount });
 
 
-        (await this.token.balanceOf(recipient)).should.be.bignumber.equal(allowance);
-        (await this.token.balanceOf(pauser)).should.be.bignumber.equal(initialSupply.sub(allowance));
+        expect(await this.token.balanceOf(recipient)).to.be.bignumber.equal(allowance);
+        expect(await this.token.balanceOf(pauser)).to.be.bignumber.equal(initialSupply.sub(allowance));
       });
       });
 
 
       it('allows to transfer when paused and then unpaused', async function () {
       it('allows to transfer when paused and then unpaused', async function () {
@@ -191,8 +193,8 @@ contract('ERC20Pausable', function ([_, pauser, otherPauser, recipient, anotherA
 
 
         await this.token.transferFrom(pauser, recipient, allowance, { from: anotherAccount });
         await this.token.transferFrom(pauser, recipient, allowance, { from: anotherAccount });
 
 
-        (await this.token.balanceOf(recipient)).should.be.bignumber.equal(allowance);
-        (await this.token.balanceOf(pauser)).should.be.bignumber.equal(initialSupply.sub(allowance));
+        expect(await this.token.balanceOf(recipient)).to.be.bignumber.equal(allowance);
+        expect(await this.token.balanceOf(pauser)).to.be.bignumber.equal(initialSupply.sub(allowance));
       });
       });
 
 
       it('reverts when trying to transfer from when paused', async function () {
       it('reverts when trying to transfer from when paused', async function () {
@@ -215,7 +217,7 @@ contract('ERC20Pausable', function ([_, pauser, otherPauser, recipient, anotherA
       it('allows to decrease approval when unpaused', async function () {
       it('allows to decrease approval when unpaused', async function () {
         await this.token.decreaseAllowance(anotherAccount, decrement, { from: pauser });
         await this.token.decreaseAllowance(anotherAccount, decrement, { from: pauser });
 
 
-        (await this.token.allowance(pauser, anotherAccount)).should.be.bignumber.equal(allowance.sub(decrement));
+        expect(await this.token.allowance(pauser, anotherAccount)).to.be.bignumber.equal(allowance.sub(decrement));
       });
       });
 
 
       it('allows to decrease approval when paused and then unpaused', async function () {
       it('allows to decrease approval when paused and then unpaused', async function () {
@@ -224,7 +226,7 @@ contract('ERC20Pausable', function ([_, pauser, otherPauser, recipient, anotherA
 
 
         await this.token.decreaseAllowance(anotherAccount, decrement, { from: pauser });
         await this.token.decreaseAllowance(anotherAccount, decrement, { from: pauser });
 
 
-        (await this.token.allowance(pauser, anotherAccount)).should.be.bignumber.equal(allowance.sub(decrement));
+        expect(await this.token.allowance(pauser, anotherAccount)).to.be.bignumber.equal(allowance.sub(decrement));
       });
       });
 
 
       it('reverts when trying to transfer when paused', async function () {
       it('reverts when trying to transfer when paused', async function () {
@@ -247,7 +249,7 @@ contract('ERC20Pausable', function ([_, pauser, otherPauser, recipient, anotherA
       it('allows to increase approval when unpaused', async function () {
       it('allows to increase approval when unpaused', async function () {
         await this.token.increaseAllowance(anotherAccount, increment, { from: pauser });
         await this.token.increaseAllowance(anotherAccount, increment, { from: pauser });
 
 
-        (await this.token.allowance(pauser, anotherAccount)).should.be.bignumber.equal(allowance.add(increment));
+        expect(await this.token.allowance(pauser, anotherAccount)).to.be.bignumber.equal(allowance.add(increment));
       });
       });
 
 
       it('allows to increase approval when paused and then unpaused', async function () {
       it('allows to increase approval when paused and then unpaused', async function () {
@@ -256,7 +258,7 @@ contract('ERC20Pausable', function ([_, pauser, otherPauser, recipient, anotherA
 
 
         await this.token.increaseAllowance(anotherAccount, increment, { from: pauser });
         await this.token.increaseAllowance(anotherAccount, increment, { from: pauser });
 
 
-        (await this.token.allowance(pauser, anotherAccount)).should.be.bignumber.equal(allowance.add(increment));
+        expect(await this.token.allowance(pauser, anotherAccount)).to.be.bignumber.equal(allowance.add(increment));
       });
       });
 
 
       it('reverts when trying to increase approval when paused', async function () {
       it('reverts when trying to increase approval when paused', async function () {

+ 8 - 6
test/token/ERC20/TokenTimelock.test.js

@@ -1,5 +1,7 @@
 const { BN, expectRevert, time } = require('openzeppelin-test-helpers');
 const { BN, expectRevert, time } = require('openzeppelin-test-helpers');
 
 
+const { expect } = require('chai');
+
 const ERC20Mintable = artifacts.require('ERC20Mintable');
 const ERC20Mintable = artifacts.require('ERC20Mintable');
 const TokenTimelock = artifacts.require('TokenTimelock');
 const TokenTimelock = artifacts.require('TokenTimelock');
 
 
@@ -27,9 +29,9 @@ contract('TokenTimelock', function ([_, minter, beneficiary]) {
       });
       });
 
 
       it('can get state', async function () {
       it('can get state', async function () {
-        (await this.timelock.token()).should.be.equal(this.token.address);
-        (await this.timelock.beneficiary()).should.be.equal(beneficiary);
-        (await this.timelock.releaseTime()).should.be.bignumber.equal(this.releaseTime);
+        expect(await this.timelock.token()).to.equal(this.token.address);
+        expect(await this.timelock.beneficiary()).to.equal(beneficiary);
+        expect(await this.timelock.releaseTime()).to.be.bignumber.equal(this.releaseTime);
       });
       });
 
 
       it('cannot be released before time limit', async function () {
       it('cannot be released before time limit', async function () {
@@ -44,20 +46,20 @@ contract('TokenTimelock', function ([_, minter, beneficiary]) {
       it('can be released just after limit', async function () {
       it('can be released just after limit', async function () {
         await time.increaseTo(this.releaseTime.add(time.duration.seconds(1)));
         await time.increaseTo(this.releaseTime.add(time.duration.seconds(1)));
         await this.timelock.release();
         await this.timelock.release();
-        (await this.token.balanceOf(beneficiary)).should.be.bignumber.equal(amount);
+        expect(await this.token.balanceOf(beneficiary)).to.be.bignumber.equal(amount);
       });
       });
 
 
       it('can be released after time limit', async function () {
       it('can be released after time limit', async function () {
         await time.increaseTo(this.releaseTime.add(time.duration.years(1)));
         await time.increaseTo(this.releaseTime.add(time.duration.years(1)));
         await this.timelock.release();
         await this.timelock.release();
-        (await this.token.balanceOf(beneficiary)).should.be.bignumber.equal(amount);
+        expect(await this.token.balanceOf(beneficiary)).to.be.bignumber.equal(amount);
       });
       });
 
 
       it('cannot be released twice', async function () {
       it('cannot be released twice', async function () {
         await time.increaseTo(this.releaseTime.add(time.duration.years(1)));
         await time.increaseTo(this.releaseTime.add(time.duration.years(1)));
         await this.timelock.release();
         await this.timelock.release();
         await expectRevert(this.timelock.release(), 'TokenTimelock: no tokens to release');
         await expectRevert(this.timelock.release(), 'TokenTimelock: no tokens to release');
-        (await this.token.balanceOf(beneficiary)).should.be.bignumber.equal(amount);
+        expect(await this.token.balanceOf(beneficiary)).to.be.bignumber.equal(amount);
       });
       });
     });
     });
   });
   });

+ 5 - 3
test/token/ERC20/behaviors/ERC20Burnable.behavior.js

@@ -1,6 +1,8 @@
 const { BN, constants, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 const { BN, constants, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 const { ZERO_ADDRESS } = constants;
 const { ZERO_ADDRESS } = constants;
 
 
+const { expect } = require('chai');
+
 function shouldBehaveLikeERC20Burnable (owner, initialBalance, [burner]) {
 function shouldBehaveLikeERC20Burnable (owner, initialBalance, [burner]) {
   describe('burn', function () {
   describe('burn', function () {
     describe('when the given amount is not greater than balance of the sender', function () {
     describe('when the given amount is not greater than balance of the sender', function () {
@@ -18,7 +20,7 @@ function shouldBehaveLikeERC20Burnable (owner, initialBalance, [burner]) {
         });
         });
 
 
         it('burns the requested amount', async function () {
         it('burns the requested amount', async function () {
-          (await this.token.balanceOf(owner)).should.be.bignumber.equal(initialBalance.sub(amount));
+          expect(await this.token.balanceOf(owner)).to.be.bignumber.equal(initialBalance.sub(amount));
         });
         });
 
 
         it('emits a transfer event', async function () {
         it('emits a transfer event', async function () {
@@ -62,11 +64,11 @@ function shouldBehaveLikeERC20Burnable (owner, initialBalance, [burner]) {
         });
         });
 
 
         it('burns the requested amount', async function () {
         it('burns the requested amount', async function () {
-          (await this.token.balanceOf(owner)).should.be.bignumber.equal(initialBalance.sub(amount));
+          expect(await this.token.balanceOf(owner)).to.be.bignumber.equal(initialBalance.sub(amount));
         });
         });
 
 
         it('decrements allowance', async function () {
         it('decrements allowance', async function () {
-          (await this.token.allowance(owner, burner)).should.be.bignumber.equal(originalAllowance.sub(amount));
+          expect(await this.token.allowance(owner, burner)).to.be.bignumber.equal(originalAllowance.sub(amount));
         });
         });
 
 
         it('emits a transfer event', async function () {
         it('emits a transfer event', async function () {

+ 4 - 2
test/token/ERC20/behaviors/ERC20Capped.behavior.js

@@ -1,16 +1,18 @@
 const { expectRevert } = require('openzeppelin-test-helpers');
 const { expectRevert } = require('openzeppelin-test-helpers');
 
 
+const { expect } = require('chai');
+
 function shouldBehaveLikeERC20Capped (minter, [other], cap) {
 function shouldBehaveLikeERC20Capped (minter, [other], cap) {
   describe('capped token', function () {
   describe('capped token', function () {
     const from = minter;
     const from = minter;
 
 
     it('should start with the correct cap', async function () {
     it('should start with the correct cap', async function () {
-      (await this.token.cap()).should.be.bignumber.equal(cap);
+      expect(await this.token.cap()).to.be.bignumber.equal(cap);
     });
     });
 
 
     it('should mint when amount is less than cap', async function () {
     it('should mint when amount is less than cap', async function () {
       await this.token.mint(other, cap.subn(1), { from });
       await this.token.mint(other, cap.subn(1), { from });
-      (await this.token.totalSupply()).should.be.bignumber.equal(cap.subn(1));
+      expect(await this.token.totalSupply()).to.be.bignumber.equal(cap.subn(1));
     });
     });
 
 
     it('should fail to mint if the amount exceeds the cap', async function () {
     it('should fail to mint if the amount exceeds the cap', async function () {

+ 3 - 1
test/token/ERC20/behaviors/ERC20Mintable.behavior.js

@@ -1,6 +1,8 @@
 const { BN, constants, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 const { BN, constants, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 const { ZERO_ADDRESS } = constants;
 const { ZERO_ADDRESS } = constants;
 
 
+const { expect } = require('chai');
+
 function shouldBehaveLikeERC20Mintable (minter, [other]) {
 function shouldBehaveLikeERC20Mintable (minter, [other]) {
   describe('as a mintable token', function () {
   describe('as a mintable token', function () {
     describe('mint', function () {
     describe('mint', function () {
@@ -23,7 +25,7 @@ function shouldBehaveLikeERC20Mintable (minter, [other]) {
           });
           });
 
 
           it('mints the requested amount', async function () {
           it('mints the requested amount', async function () {
-            (await this.token.balanceOf(other)).should.be.bignumber.equal(amount);
+            expect(await this.token.balanceOf(other)).to.be.bignumber.equal(amount);
           });
           });
 
 
           it('emits a mint and a transfer event', async function () {
           it('emits a mint and a transfer event', async function () {

+ 19 - 18
test/token/ERC721/ERC721.behavior.js

@@ -1,4 +1,5 @@
 const { BN, constants, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 const { BN, constants, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
+const { expect } = require('chai');
 const { ZERO_ADDRESS } = constants;
 const { ZERO_ADDRESS } = constants;
 const { shouldSupportInterfaces } = require('../../introspection/SupportsInterface.behavior');
 const { shouldSupportInterfaces } = require('../../introspection/SupportsInterface.behavior');
 
 
@@ -24,13 +25,13 @@ function shouldBehaveLikeERC721 (
     describe('balanceOf', function () {
     describe('balanceOf', function () {
       context('when the given address owns some tokens', function () {
       context('when the given address owns some tokens', function () {
         it('returns the amount of tokens owned by the given address', async function () {
         it('returns the amount of tokens owned by the given address', async function () {
-          (await this.token.balanceOf(owner)).should.be.bignumber.equal('2');
+          expect(await this.token.balanceOf(owner)).to.be.bignumber.equal('2');
         });
         });
       });
       });
 
 
       context('when the given address does not own any tokens', function () {
       context('when the given address does not own any tokens', function () {
         it('returns 0', async function () {
         it('returns 0', async function () {
-          (await this.token.balanceOf(other)).should.be.bignumber.equal('0');
+          expect(await this.token.balanceOf(other)).to.be.bignumber.equal('0');
         });
         });
       });
       });
 
 
@@ -48,7 +49,7 @@ function shouldBehaveLikeERC721 (
         const tokenId = firstTokenId;
         const tokenId = firstTokenId;
 
 
         it('returns the owner of the given token ID', async function () {
         it('returns the owner of the given token ID', async function () {
-          (await this.token.ownerOf(tokenId)).should.be.equal(owner);
+          expect(await this.token.ownerOf(tokenId)).to.be.equal(owner);
         });
         });
       });
       });
 
 
@@ -76,11 +77,11 @@ function shouldBehaveLikeERC721 (
 
 
       const transferWasSuccessful = function ({ owner, tokenId, approved }) {
       const transferWasSuccessful = function ({ owner, tokenId, approved }) {
         it('transfers the ownership of the given token ID to the given address', async function () {
         it('transfers the ownership of the given token ID to the given address', async function () {
-          (await this.token.ownerOf(tokenId)).should.be.equal(this.toWhom);
+          expect(await this.token.ownerOf(tokenId)).to.be.equal(this.toWhom);
         });
         });
 
 
         it('clears the approval for the token ID', async function () {
         it('clears the approval for the token ID', async function () {
-          (await this.token.getApproved(tokenId)).should.be.equal(ZERO_ADDRESS);
+          expect(await this.token.getApproved(tokenId)).to.be.equal(ZERO_ADDRESS);
         });
         });
 
 
         if (approved) {
         if (approved) {
@@ -102,15 +103,15 @@ function shouldBehaveLikeERC721 (
         }
         }
 
 
         it('adjusts owners balances', async function () {
         it('adjusts owners balances', async function () {
-          (await this.token.balanceOf(owner)).should.be.bignumber.equal('1');
+          expect(await this.token.balanceOf(owner)).to.be.bignumber.equal('1');
         });
         });
 
 
         it('adjusts owners tokens by index', async function () {
         it('adjusts owners tokens by index', async function () {
           if (!this.token.tokenOfOwnerByIndex) return;
           if (!this.token.tokenOfOwnerByIndex) return;
 
 
-          (await this.token.tokenOfOwnerByIndex(this.toWhom, 0)).should.be.bignumber.equal(tokenId);
+          expect(await this.token.tokenOfOwnerByIndex(this.toWhom, 0)).to.be.bignumber.equal(tokenId);
 
 
-          (await this.token.tokenOfOwnerByIndex(owner, 0)).should.be.bignumber.not.equal(tokenId);
+          expect(await this.token.tokenOfOwnerByIndex(owner, 0)).to.be.bignumber.not.equal(tokenId);
         });
         });
       };
       };
 
 
@@ -150,11 +151,11 @@ function shouldBehaveLikeERC721 (
           });
           });
 
 
           it('keeps ownership of the token', async function () {
           it('keeps ownership of the token', async function () {
-            (await this.token.ownerOf(tokenId)).should.be.equal(owner);
+            expect(await this.token.ownerOf(tokenId)).to.be.equal(owner);
           });
           });
 
 
           it('clears the approval for the token ID', async function () {
           it('clears the approval for the token ID', async function () {
-            (await this.token.getApproved(tokenId)).should.be.equal(ZERO_ADDRESS);
+            expect(await this.token.getApproved(tokenId)).to.be.equal(ZERO_ADDRESS);
           });
           });
 
 
           it('emits only a transfer event', async function () {
           it('emits only a transfer event', async function () {
@@ -166,7 +167,7 @@ function shouldBehaveLikeERC721 (
           });
           });
 
 
           it('keeps the owner balance', async function () {
           it('keeps the owner balance', async function () {
-            (await this.token.balanceOf(owner)).should.be.bignumber.equal('2');
+            expect(await this.token.balanceOf(owner)).to.be.bignumber.equal('2');
           });
           });
 
 
           it('keeps same tokens by index', async function () {
           it('keeps same tokens by index', async function () {
@@ -174,7 +175,7 @@ function shouldBehaveLikeERC721 (
             const tokensListed = await Promise.all(
             const tokensListed = await Promise.all(
               [0, 1].map(i => this.token.tokenOfOwnerByIndex(owner, i))
               [0, 1].map(i => this.token.tokenOfOwnerByIndex(owner, i))
             );
             );
-            tokensListed.map(t => t.toNumber()).should.have.members(
+            expect(tokensListed.map(t => t.toNumber())).to.have.members(
               [firstTokenId.toNumber(), secondTokenId.toNumber()]
               [firstTokenId.toNumber(), secondTokenId.toNumber()]
             );
             );
           });
           });
@@ -330,13 +331,13 @@ function shouldBehaveLikeERC721 (
 
 
       const itClearsApproval = function () {
       const itClearsApproval = function () {
         it('clears approval for the token', async function () {
         it('clears approval for the token', async function () {
-          (await this.token.getApproved(tokenId)).should.be.equal(ZERO_ADDRESS);
+          expect(await this.token.getApproved(tokenId)).to.be.equal(ZERO_ADDRESS);
         });
         });
       };
       };
 
 
       const itApproves = function (address) {
       const itApproves = function (address) {
         it('sets the approval for the target address', async function () {
         it('sets the approval for the target address', async function () {
-          (await this.token.getApproved(tokenId)).should.be.equal(address);
+          expect(await this.token.getApproved(tokenId)).to.be.equal(address);
         });
         });
       };
       };
 
 
@@ -449,7 +450,7 @@ function shouldBehaveLikeERC721 (
           it('approves the operator', async function () {
           it('approves the operator', async function () {
             await this.token.setApprovalForAll(operator, true, { from: owner });
             await this.token.setApprovalForAll(operator, true, { from: owner });
 
 
-            (await this.token.isApprovedForAll(owner, operator)).should.equal(true);
+            expect(await this.token.isApprovedForAll(owner, operator)).to.equal(true);
           });
           });
 
 
           it('emits an approval event', async function () {
           it('emits an approval event', async function () {
@@ -471,7 +472,7 @@ function shouldBehaveLikeERC721 (
           it('approves the operator', async function () {
           it('approves the operator', async function () {
             await this.token.setApprovalForAll(operator, true, { from: owner });
             await this.token.setApprovalForAll(operator, true, { from: owner });
 
 
-            (await this.token.isApprovedForAll(owner, operator)).should.equal(true);
+            expect(await this.token.isApprovedForAll(owner, operator)).to.equal(true);
           });
           });
 
 
           it('emits an approval event', async function () {
           it('emits an approval event', async function () {
@@ -487,7 +488,7 @@ function shouldBehaveLikeERC721 (
           it('can unset the operator approval', async function () {
           it('can unset the operator approval', async function () {
             await this.token.setApprovalForAll(operator, false, { from: owner });
             await this.token.setApprovalForAll(operator, false, { from: owner });
 
 
-            (await this.token.isApprovedForAll(owner, operator)).should.equal(false);
+            expect(await this.token.isApprovedForAll(owner, operator)).to.equal(false);
           });
           });
         });
         });
 
 
@@ -499,7 +500,7 @@ function shouldBehaveLikeERC721 (
           it('keeps the approval to the given address', async function () {
           it('keeps the approval to the given address', async function () {
             await this.token.setApprovalForAll(operator, true, { from: owner });
             await this.token.setApprovalForAll(operator, true, { from: owner });
 
 
-            (await this.token.isApprovedForAll(owner, operator)).should.equal(true);
+            expect(await this.token.isApprovedForAll(owner, operator)).to.equal(true);
           });
           });
 
 
           it('emits an approval event', async function () {
           it('emits an approval event', async function () {

+ 6 - 4
test/token/ERC721/ERC721.test.js

@@ -1,6 +1,8 @@
 const { BN, constants, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 const { BN, constants, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 const { ZERO_ADDRESS } = constants;
 const { ZERO_ADDRESS } = constants;
 
 
+const { expect } = require('chai');
+
 const { shouldBehaveLikeERC721 } = require('./ERC721.behavior');
 const { shouldBehaveLikeERC721 } = require('./ERC721.behavior');
 const ERC721Mock = artifacts.require('ERC721Mock.sol');
 const ERC721Mock = artifacts.require('ERC721Mock.sol');
 
 
@@ -31,8 +33,8 @@ contract('ERC721', function ([_, creator, tokenOwner, other, ...accounts]) {
         });
         });
 
 
         it('creates the token', async function () {
         it('creates the token', async function () {
-          (await this.token.balanceOf(tokenOwner)).should.be.bignumber.equal('1');
-          (await this.token.ownerOf(tokenId)).should.equal(tokenOwner);
+          expect(await this.token.balanceOf(tokenOwner)).to.be.bignumber.equal('1');
+          expect(await this.token.ownerOf(tokenId)).to.equal(tokenOwner);
         });
         });
 
 
         it('reverts when adding a token id that already exists', async function () {
         it('reverts when adding a token id that already exists', async function () {
@@ -69,7 +71,7 @@ contract('ERC721', function ([_, creator, tokenOwner, other, ...accounts]) {
           });
           });
 
 
           it('deletes the token', async function () {
           it('deletes the token', async function () {
-            (await this.token.balanceOf(tokenOwner)).should.be.bignumber.equal('0');
+            expect(await this.token.balanceOf(tokenOwner)).to.be.bignumber.equal('0');
             await expectRevert(
             await expectRevert(
               this.token.ownerOf(tokenId), 'ERC721: owner query for nonexistent token'
               this.token.ownerOf(tokenId), 'ERC721: owner query for nonexistent token'
             );
             );
@@ -107,7 +109,7 @@ contract('ERC721', function ([_, creator, tokenOwner, other, ...accounts]) {
           });
           });
 
 
           it('deletes the token', async function () {
           it('deletes the token', async function () {
-            (await this.token.balanceOf(tokenOwner)).should.be.bignumber.equal('0');
+            expect(await this.token.balanceOf(tokenOwner)).to.be.bignumber.equal('0');
             await expectRevert(
             await expectRevert(
               this.token.ownerOf(tokenId), 'ERC721: owner query for nonexistent token'
               this.token.ownerOf(tokenId), 'ERC721: owner query for nonexistent token'
             );
             );

+ 24 - 21
test/token/ERC721/ERC721Full.test.js

@@ -1,4 +1,5 @@
 const { BN, expectRevert } = require('openzeppelin-test-helpers');
 const { BN, expectRevert } = require('openzeppelin-test-helpers');
+const { expect } = require('chai');
 
 
 const { shouldBehaveLikeERC721 } = require('./ERC721.behavior');
 const { shouldBehaveLikeERC721 } = require('./ERC721.behavior');
 const { shouldSupportInterfaces } = require('../../introspection/SupportsInterface.behavior');
 const { shouldSupportInterfaces } = require('../../introspection/SupportsInterface.behavior');
@@ -40,11 +41,11 @@ contract('ERC721Full', function ([
       });
       });
 
 
       it('adjusts owner tokens by index', async function () {
       it('adjusts owner tokens by index', async function () {
-        (await this.token.tokenOfOwnerByIndex(newOwner, 0)).should.be.bignumber.equal(thirdTokenId);
+        expect(await this.token.tokenOfOwnerByIndex(newOwner, 0)).to.be.bignumber.equal(thirdTokenId);
       });
       });
 
 
       it('adjusts all tokens list', async function () {
       it('adjusts all tokens list', async function () {
-        (await this.token.tokenByIndex(2)).should.be.bignumber.equal(thirdTokenId);
+        expect(await this.token.tokenByIndex(2)).to.be.bignumber.equal(thirdTokenId);
       });
       });
     });
     });
 
 
@@ -54,16 +55,16 @@ contract('ERC721Full', function ([
       });
       });
 
 
       it('removes that token from the token list of the owner', async function () {
       it('removes that token from the token list of the owner', async function () {
-        (await this.token.tokenOfOwnerByIndex(owner, 0)).should.be.bignumber.equal(secondTokenId);
+        expect(await this.token.tokenOfOwnerByIndex(owner, 0)).to.be.bignumber.equal(secondTokenId);
       });
       });
 
 
       it('adjusts all tokens list', async function () {
       it('adjusts all tokens list', async function () {
-        (await this.token.tokenByIndex(0)).should.be.bignumber.equal(secondTokenId);
+        expect(await this.token.tokenByIndex(0)).to.be.bignumber.equal(secondTokenId);
       });
       });
 
 
       it('burns all tokens', async function () {
       it('burns all tokens', async function () {
         await this.token.burn(secondTokenId, { from: owner });
         await this.token.burn(secondTokenId, { from: owner });
-        (await this.token.totalSupply()).should.be.bignumber.equal('0');
+        expect(await this.token.totalSupply()).to.be.bignumber.equal('0');
         await expectRevert(
         await expectRevert(
           this.token.tokenByIndex(0), 'ERC721Enumerable: global index out of bounds'
           this.token.tokenByIndex(0), 'ERC721Enumerable: global index out of bounds'
         );
         );
@@ -74,16 +75,16 @@ contract('ERC721Full', function ([
       const sampleUri = 'mock://mytoken';
       const sampleUri = 'mock://mytoken';
 
 
       it('has a name', async function () {
       it('has a name', async function () {
-        (await this.token.name()).should.be.equal(name);
+        expect(await this.token.name()).to.be.equal(name);
       });
       });
 
 
       it('has a symbol', async function () {
       it('has a symbol', async function () {
-        (await this.token.symbol()).should.be.equal(symbol);
+        expect(await this.token.symbol()).to.be.equal(symbol);
       });
       });
 
 
       it('sets and returns metadata for a token id', async function () {
       it('sets and returns metadata for a token id', async function () {
         await this.token.setTokenURI(firstTokenId, sampleUri);
         await this.token.setTokenURI(firstTokenId, sampleUri);
-        (await this.token.tokenURI(firstTokenId)).should.be.equal(sampleUri);
+        expect(await this.token.tokenURI(firstTokenId)).to.be.equal(sampleUri);
       });
       });
 
 
       it('reverts when setting metadata for non existent token id', async function () {
       it('reverts when setting metadata for non existent token id', async function () {
@@ -95,11 +96,11 @@ contract('ERC721Full', function ([
       it('can burn token with metadata', async function () {
       it('can burn token with metadata', async function () {
         await this.token.setTokenURI(firstTokenId, sampleUri);
         await this.token.setTokenURI(firstTokenId, sampleUri);
         await this.token.burn(firstTokenId, { from: owner });
         await this.token.burn(firstTokenId, { from: owner });
-        (await this.token.exists(firstTokenId)).should.equal(false);
+        expect(await this.token.exists(firstTokenId)).to.equal(false);
       });
       });
 
 
       it('returns empty metadata for token', async function () {
       it('returns empty metadata for token', async function () {
-        (await this.token.tokenURI(firstTokenId)).should.be.equal('');
+        expect(await this.token.tokenURI(firstTokenId)).to.be.equal('');
       });
       });
 
 
       it('reverts when querying metadata for non existent token id', async function () {
       it('reverts when querying metadata for non existent token id', async function () {
@@ -112,22 +113,22 @@ contract('ERC721Full', function ([
     describe('tokensOfOwner', function () {
     describe('tokensOfOwner', function () {
       it('returns total tokens of owner', async function () {
       it('returns total tokens of owner', async function () {
         const tokenIds = await this.token.tokensOfOwner(owner);
         const tokenIds = await this.token.tokensOfOwner(owner);
-        tokenIds.length.should.equal(2);
-        tokenIds[0].should.be.bignumber.equal(firstTokenId);
-        tokenIds[1].should.be.bignumber.equal(secondTokenId);
+        expect(tokenIds.length).to.equal(2);
+        expect(tokenIds[0]).to.be.bignumber.equal(firstTokenId);
+        expect(tokenIds[1]).to.be.bignumber.equal(secondTokenId);
       });
       });
     });
     });
 
 
     describe('totalSupply', function () {
     describe('totalSupply', function () {
       it('returns total token supply', async function () {
       it('returns total token supply', async function () {
-        (await this.token.totalSupply()).should.be.bignumber.equal('2');
+        expect(await this.token.totalSupply()).to.be.bignumber.equal('2');
       });
       });
     });
     });
 
 
     describe('tokenOfOwnerByIndex', function () {
     describe('tokenOfOwnerByIndex', function () {
       describe('when the given index is lower than the amount of tokens owned by the given address', function () {
       describe('when the given index is lower than the amount of tokens owned by the given address', function () {
         it('returns the token ID placed at the given index', async function () {
         it('returns the token ID placed at the given index', async function () {
-          (await this.token.tokenOfOwnerByIndex(owner, 0)).should.be.bignumber.equal(firstTokenId);
+          expect(await this.token.tokenOfOwnerByIndex(owner, 0)).to.be.bignumber.equal(firstTokenId);
         });
         });
       });
       });
 
 
@@ -154,15 +155,16 @@ contract('ERC721Full', function ([
         });
         });
 
 
         it('returns correct token IDs for target', async function () {
         it('returns correct token IDs for target', async function () {
-          (await this.token.balanceOf(another)).should.be.bignumber.equal('2');
+          expect(await this.token.balanceOf(another)).to.be.bignumber.equal('2');
           const tokensListed = await Promise.all(
           const tokensListed = await Promise.all(
             [0, 1].map(i => this.token.tokenOfOwnerByIndex(another, i))
             [0, 1].map(i => this.token.tokenOfOwnerByIndex(another, i))
           );
           );
-          tokensListed.map(t => t.toNumber()).should.have.members([firstTokenId.toNumber(), secondTokenId.toNumber()]);
+          expect(tokensListed.map(t => t.toNumber())).to.have.members([firstTokenId.toNumber(),
+            secondTokenId.toNumber()]);
         });
         });
 
 
         it('returns empty collection for original owner', async function () {
         it('returns empty collection for original owner', async function () {
-          (await this.token.balanceOf(owner)).should.be.bignumber.equal('0');
+          expect(await this.token.balanceOf(owner)).to.be.bignumber.equal('0');
           await expectRevert(
           await expectRevert(
             this.token.tokenOfOwnerByIndex(owner, 0), 'ERC721Enumerable: owner index out of bounds'
             this.token.tokenOfOwnerByIndex(owner, 0), 'ERC721Enumerable: owner index out of bounds'
           );
           );
@@ -175,7 +177,8 @@ contract('ERC721Full', function ([
         const tokensListed = await Promise.all(
         const tokensListed = await Promise.all(
           [0, 1].map(i => this.token.tokenByIndex(i))
           [0, 1].map(i => this.token.tokenByIndex(i))
         );
         );
-        tokensListed.map(t => t.toNumber()).should.have.members([firstTokenId.toNumber(), secondTokenId.toNumber()]);
+        expect(tokensListed.map(t => t.toNumber())).to.have.members([firstTokenId.toNumber(),
+          secondTokenId.toNumber()]);
       });
       });
 
 
       it('should revert if index is greater than supply', async function () {
       it('should revert if index is greater than supply', async function () {
@@ -193,7 +196,7 @@ contract('ERC721Full', function ([
           await this.token.mint(newOwner, newTokenId, { from: minter });
           await this.token.mint(newOwner, newTokenId, { from: minter });
           await this.token.mint(newOwner, anotherNewTokenId, { from: minter });
           await this.token.mint(newOwner, anotherNewTokenId, { from: minter });
 
 
-          (await this.token.totalSupply()).should.be.bignumber.equal('3');
+          expect(await this.token.totalSupply()).to.be.bignumber.equal('3');
 
 
           const tokensListed = await Promise.all(
           const tokensListed = await Promise.all(
             [0, 1, 2].map(i => this.token.tokenByIndex(i))
             [0, 1, 2].map(i => this.token.tokenByIndex(i))
@@ -201,7 +204,7 @@ contract('ERC721Full', function ([
           const expectedTokens = [firstTokenId, secondTokenId, newTokenId, anotherNewTokenId].filter(
           const expectedTokens = [firstTokenId, secondTokenId, newTokenId, anotherNewTokenId].filter(
             x => (x !== tokenId)
             x => (x !== tokenId)
           );
           );
-          tokensListed.map(t => t.toNumber()).should.have.members(expectedTokens.map(t => t.toNumber()));
+          expect(tokensListed.map(t => t.toNumber())).to.have.members(expectedTokens.map(t => t.toNumber()));
         });
         });
       });
       });
     });
     });

+ 3 - 1
test/token/ERC721/ERC721Holder.test.js

@@ -1,5 +1,7 @@
 const { BN } = require('openzeppelin-test-helpers');
 const { BN } = require('openzeppelin-test-helpers');
 
 
+const { expect } = require('chai');
+
 const ERC721Holder = artifacts.require('ERC721Holder.sol');
 const ERC721Holder = artifacts.require('ERC721Holder.sol');
 const ERC721Mintable = artifacts.require('ERC721MintableBurnableImpl.sol');
 const ERC721Mintable = artifacts.require('ERC721MintableBurnableImpl.sol');
 
 
@@ -13,6 +15,6 @@ contract('ERC721Holder', function ([creator]) {
     await token.approve(receiver.address, tokenId, { from: creator });
     await token.approve(receiver.address, tokenId, { from: creator });
     await token.safeTransferFrom(creator, receiver.address, tokenId);
     await token.safeTransferFrom(creator, receiver.address, tokenId);
 
 
-    (await token.ownerOf(tokenId)).should.be.equal(receiver.address);
+    expect(await token.ownerOf(tokenId)).to.be.equal(receiver.address);
   });
   });
 });
 });

+ 5 - 3
test/token/ERC721/ERC721MintBurn.behavior.js

@@ -1,6 +1,8 @@
 const { BN, constants, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 const { BN, constants, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 const { ZERO_ADDRESS } = constants;
 const { ZERO_ADDRESS } = constants;
 
 
+const { expect } = require('chai');
+
 function shouldBehaveLikeMintAndBurnERC721 (
 function shouldBehaveLikeMintAndBurnERC721 (
   creator,
   creator,
   minter,
   minter,
@@ -28,11 +30,11 @@ function shouldBehaveLikeMintAndBurnERC721 (
         });
         });
 
 
         it('assigns the token to the new owner', async function () {
         it('assigns the token to the new owner', async function () {
-          (await this.token.ownerOf(thirdTokenId)).should.be.equal(newOwner);
+          expect(await this.token.ownerOf(thirdTokenId)).to.equal(newOwner);
         });
         });
 
 
         it('increases the balance of its owner', async function () {
         it('increases the balance of its owner', async function () {
-          (await this.token.balanceOf(newOwner)).should.be.bignumber.equal('1');
+          expect(await this.token.balanceOf(newOwner)).to.be.bignumber.equal('1');
         });
         });
 
 
         it('emits a transfer and minted event', async function () {
         it('emits a transfer and minted event', async function () {
@@ -85,7 +87,7 @@ function shouldBehaveLikeMintAndBurnERC721 (
             this.token.ownerOf(tokenId),
             this.token.ownerOf(tokenId),
             'ERC721: owner query for nonexistent token'
             'ERC721: owner query for nonexistent token'
           );
           );
-          (await this.token.balanceOf(owner)).should.be.bignumber.equal('1');
+          expect(await this.token.balanceOf(owner)).to.be.bignumber.equal('1');
         });
         });
 
 
         it('emits a burn event', async function () {
         it('emits a burn event', async function () {

+ 7 - 5
test/token/ERC721/ERC721PausedToken.behavior.js

@@ -1,6 +1,8 @@
 const { BN, constants, expectRevert } = require('openzeppelin-test-helpers');
 const { BN, constants, expectRevert } = require('openzeppelin-test-helpers');
 const { ZERO_ADDRESS } = constants;
 const { ZERO_ADDRESS } = constants;
 
 
+const { expect } = require('chai');
+
 function shouldBehaveLikeERC721PausedToken (owner, [recipient, operator]) {
 function shouldBehaveLikeERC721PausedToken (owner, [recipient, operator]) {
   const firstTokenId = new BN(1);
   const firstTokenId = new BN(1);
   const mintedTokens = new BN(1);
   const mintedTokens = new BN(1);
@@ -46,33 +48,33 @@ function shouldBehaveLikeERC721PausedToken (owner, [recipient, operator]) {
     describe('getApproved', function () {
     describe('getApproved', function () {
       it('returns approved address', async function () {
       it('returns approved address', async function () {
         const approvedAccount = await this.token.getApproved(firstTokenId);
         const approvedAccount = await this.token.getApproved(firstTokenId);
-        approvedAccount.should.be.equal(ZERO_ADDRESS);
+        expect(approvedAccount).to.equal(ZERO_ADDRESS);
       });
       });
     });
     });
 
 
     describe('balanceOf', function () {
     describe('balanceOf', function () {
       it('returns the amount of tokens owned by the given address', async function () {
       it('returns the amount of tokens owned by the given address', async function () {
         const balance = await this.token.balanceOf(owner);
         const balance = await this.token.balanceOf(owner);
-        balance.should.be.bignumber.equal(mintedTokens);
+        expect(balance).to.be.bignumber.equal(mintedTokens);
       });
       });
     });
     });
 
 
     describe('ownerOf', function () {
     describe('ownerOf', function () {
       it('returns the amount of tokens owned by the given address', async function () {
       it('returns the amount of tokens owned by the given address', async function () {
         const ownerOfToken = await this.token.ownerOf(firstTokenId);
         const ownerOfToken = await this.token.ownerOf(firstTokenId);
-        ownerOfToken.should.be.equal(owner);
+        expect(ownerOfToken).to.equal(owner);
       });
       });
     });
     });
 
 
     describe('exists', function () {
     describe('exists', function () {
       it('should return token existence', async function () {
       it('should return token existence', async function () {
-        (await this.token.exists(firstTokenId)).should.equal(true);
+        expect(await this.token.exists(firstTokenId)).to.equal(true);
       });
       });
     });
     });
 
 
     describe('isApprovedForAll', function () {
     describe('isApprovedForAll', function () {
       it('returns the approval of the operator', async function () {
       it('returns the approval of the operator', async function () {
-        (await this.token.isApprovedForAll(owner, operator)).should.equal(false);
+        expect(await this.token.isApprovedForAll(owner, operator)).to.equal(false);
       });
       });
     });
     });
   });
   });

+ 10 - 8
test/token/ERC777/ERC777.behavior.js

@@ -1,6 +1,8 @@
 const { BN, constants, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 const { BN, constants, expectEvent, expectRevert } = require('openzeppelin-test-helpers');
 const { ZERO_ADDRESS } = constants;
 const { ZERO_ADDRESS } = constants;
 
 
+const { expect } = require('chai');
+
 const ERC777SenderRecipientMock = artifacts.require('ERC777SenderRecipientMock');
 const ERC777SenderRecipientMock = artifacts.require('ERC777SenderRecipientMock');
 
 
 function shouldBehaveLikeERC777DirectSendBurn (holder, recipient, data) {
 function shouldBehaveLikeERC777DirectSendBurn (holder, recipient, data) {
@@ -217,9 +219,9 @@ function shouldSendTokens (from, operator, to, amount, data, operatorData) {
     const finalFromBalance = await this.token.balanceOf(from);
     const finalFromBalance = await this.token.balanceOf(from);
     const finalToBalance = await this.token.balanceOf(to);
     const finalToBalance = await this.token.balanceOf(to);
 
 
-    finalTotalSupply.should.be.bignumber.equal(initialTotalSupply);
-    finalToBalance.sub(initialToBalance).should.be.bignumber.equal(amount);
-    finalFromBalance.sub(initialFromBalance).should.be.bignumber.equal(amount.neg());
+    expect(finalTotalSupply).to.be.bignumber.equal(initialTotalSupply);
+    expect(finalToBalance.sub(initialToBalance)).to.be.bignumber.equal(amount);
+    expect(finalFromBalance.sub(initialFromBalance)).to.be.bignumber.equal(amount.neg());
   });
   });
 }
 }
 
 
@@ -268,8 +270,8 @@ function shouldBurnTokens (from, operator, amount, data, operatorData) {
     const finalTotalSupply = await this.token.totalSupply();
     const finalTotalSupply = await this.token.totalSupply();
     const finalFromBalance = await this.token.balanceOf(from);
     const finalFromBalance = await this.token.balanceOf(from);
 
 
-    finalTotalSupply.sub(initialTotalSupply).should.be.bignumber.equal(amount.neg());
-    finalFromBalance.sub(initialFromBalance).should.be.bignumber.equal(amount.neg());
+    expect(finalTotalSupply.sub(initialTotalSupply)).to.be.bignumber.equal(amount.neg());
+    expect(finalFromBalance.sub(initialFromBalance)).to.be.bignumber.equal(amount.neg());
   });
   });
 }
 }
 
 
@@ -306,8 +308,8 @@ function shouldInternalMintTokens (operator, to, amount, data, operatorData) {
     const finalTotalSupply = await this.token.totalSupply();
     const finalTotalSupply = await this.token.totalSupply();
     const finalToBalance = await this.token.balanceOf(to);
     const finalToBalance = await this.token.balanceOf(to);
 
 
-    finalTotalSupply.sub(initialTotalSupply).should.be.bignumber.equal(amount);
-    finalToBalance.sub(initialToBalance).should.be.bignumber.equal(amount);
+    expect(finalTotalSupply.sub(initialTotalSupply)).to.be.bignumber.equal(amount);
+    expect(finalToBalance.sub(initialToBalance)).to.be.bignumber.equal(amount);
   });
   });
 }
 }
 
 
@@ -505,7 +507,7 @@ function shouldBehaveLikeERC777SendBurnWithSendHook (operator, amount, data, ope
 function removeBalance (holder) {
 function removeBalance (holder) {
   beforeEach(async function () {
   beforeEach(async function () {
     await this.token.burn(await this.token.balanceOf(holder), '0x', { from: holder });
     await this.token.burn(await this.token.balanceOf(holder), '0x', { from: holder });
-    (await this.token.balanceOf(holder)).should.be.bignumber.equal('0');
+    expect(await this.token.balanceOf(holder)).to.be.bignumber.equal('0');
   });
   });
 }
 }
 
 

+ 30 - 28
test/token/ERC777/ERC777.test.js

@@ -1,5 +1,7 @@
 const { BN, expectEvent, expectRevert, singletons } = require('openzeppelin-test-helpers');
 const { BN, expectEvent, expectRevert, singletons } = require('openzeppelin-test-helpers');
 
 
+const { expect } = require('chai');
+
 const {
 const {
   shouldBehaveLikeERC777DirectSendBurn,
   shouldBehaveLikeERC777DirectSendBurn,
   shouldBehaveLikeERC777OperatorSendBurn,
   shouldBehaveLikeERC777OperatorSendBurn,
@@ -44,56 +46,56 @@ contract('ERC777', function ([
 
 
     describe('basic information', function () {
     describe('basic information', function () {
       it('returns the name', async function () {
       it('returns the name', async function () {
-        (await this.token.name()).should.equal(name);
+        expect(await this.token.name()).to.equal(name);
       });
       });
 
 
       it('returns the symbol', async function () {
       it('returns the symbol', async function () {
-        (await this.token.symbol()).should.equal(symbol);
+        expect(await this.token.symbol()).to.equal(symbol);
       });
       });
 
 
       it('returns a granularity of 1', async function () {
       it('returns a granularity of 1', async function () {
-        (await this.token.granularity()).should.be.bignumber.equal('1');
+        expect(await this.token.granularity()).to.be.bignumber.equal('1');
       });
       });
 
 
       it('returns the default operators', async function () {
       it('returns the default operators', async function () {
-        (await this.token.defaultOperators()).should.deep.equal(defaultOperators);
+        expect(await this.token.defaultOperators()).to.deep.equal(defaultOperators);
       });
       });
 
 
       it('default operators are operators for all accounts', async function () {
       it('default operators are operators for all accounts', async function () {
         for (const operator of defaultOperators) {
         for (const operator of defaultOperators) {
-          (await this.token.isOperatorFor(operator, anyone)).should.equal(true);
+          expect(await this.token.isOperatorFor(operator, anyone)).to.equal(true);
         }
         }
       });
       });
 
 
       it('returns the total supply', async function () {
       it('returns the total supply', async function () {
-        (await this.token.totalSupply()).should.be.bignumber.equal(initialSupply);
+        expect(await this.token.totalSupply()).to.be.bignumber.equal(initialSupply);
       });
       });
 
 
       it('returns 18 when decimals is called', async function () {
       it('returns 18 when decimals is called', async function () {
-        (await this.token.decimals()).should.be.bignumber.equal('18');
+        expect(await this.token.decimals()).to.be.bignumber.equal('18');
       });
       });
 
 
       it('the ERC777Token interface is registered in the registry', async function () {
       it('the ERC777Token interface is registered in the registry', async function () {
-        (await this.erc1820.getInterfaceImplementer(this.token.address, web3.utils.soliditySha3('ERC777Token')))
-          .should.equal(this.token.address);
+        expect(await this.erc1820.getInterfaceImplementer(this.token.address, web3.utils.soliditySha3('ERC777Token')))
+          .to.equal(this.token.address);
       });
       });
 
 
       it('the ERC20Token interface is registered in the registry', async function () {
       it('the ERC20Token interface is registered in the registry', async function () {
-        (await this.erc1820.getInterfaceImplementer(this.token.address, web3.utils.soliditySha3('ERC20Token')))
-          .should.equal(this.token.address);
+        expect(await this.erc1820.getInterfaceImplementer(this.token.address, web3.utils.soliditySha3('ERC20Token')))
+          .to.equal(this.token.address);
       });
       });
     });
     });
 
 
     describe('balanceOf', function () {
     describe('balanceOf', function () {
       context('for an account with no tokens', function () {
       context('for an account with no tokens', function () {
         it('returns zero', async function () {
         it('returns zero', async function () {
-          (await this.token.balanceOf(anyone)).should.be.bignumber.equal('0');
+          expect(await this.token.balanceOf(anyone)).to.be.bignumber.equal('0');
         });
         });
       });
       });
 
 
       context('for an account with tokens', function () {
       context('for an account with tokens', function () {
         it('returns their balance', async function () {
         it('returns their balance', async function () {
-          (await this.token.balanceOf(holder)).should.be.bignumber.equal(initialSupply);
+          expect(await this.token.balanceOf(holder)).to.be.bignumber.equal(initialSupply);
         });
         });
       });
       });
     });
     });
@@ -155,7 +157,7 @@ contract('ERC777', function ([
 
 
     describe('operator management', function () {
     describe('operator management', function () {
       it('accounts are their own operator', async function () {
       it('accounts are their own operator', async function () {
-        (await this.token.isOperatorFor(holder, holder)).should.equal(true);
+        expect(await this.token.isOperatorFor(holder, holder)).to.equal(true);
       });
       });
 
 
       it('reverts when self-authorizing', async function () {
       it('reverts when self-authorizing', async function () {
@@ -171,21 +173,21 @@ contract('ERC777', function ([
       });
       });
 
 
       it('non-operators can be revoked', async function () {
       it('non-operators can be revoked', async function () {
-        (await this.token.isOperatorFor(newOperator, holder)).should.equal(false);
+        expect(await this.token.isOperatorFor(newOperator, holder)).to.equal(false);
 
 
         const { logs } = await this.token.revokeOperator(newOperator, { from: holder });
         const { logs } = await this.token.revokeOperator(newOperator, { from: holder });
         expectEvent.inLogs(logs, 'RevokedOperator', { operator: newOperator, tokenHolder: holder });
         expectEvent.inLogs(logs, 'RevokedOperator', { operator: newOperator, tokenHolder: holder });
 
 
-        (await this.token.isOperatorFor(newOperator, holder)).should.equal(false);
+        expect(await this.token.isOperatorFor(newOperator, holder)).to.equal(false);
       });
       });
 
 
       it('non-operators can be authorized', async function () {
       it('non-operators can be authorized', async function () {
-        (await this.token.isOperatorFor(newOperator, holder)).should.equal(false);
+        expect(await this.token.isOperatorFor(newOperator, holder)).to.equal(false);
 
 
         const { logs } = await this.token.authorizeOperator(newOperator, { from: holder });
         const { logs } = await this.token.authorizeOperator(newOperator, { from: holder });
         expectEvent.inLogs(logs, 'AuthorizedOperator', { operator: newOperator, tokenHolder: holder });
         expectEvent.inLogs(logs, 'AuthorizedOperator', { operator: newOperator, tokenHolder: holder });
 
 
-        (await this.token.isOperatorFor(newOperator, holder)).should.equal(true);
+        expect(await this.token.isOperatorFor(newOperator, holder)).to.equal(true);
       });
       });
 
 
       describe('new operators', function () {
       describe('new operators', function () {
@@ -194,21 +196,21 @@ contract('ERC777', function ([
         });
         });
 
 
         it('are not added to the default operators list', async function () {
         it('are not added to the default operators list', async function () {
-          (await this.token.defaultOperators()).should.deep.equal(defaultOperators);
+          expect(await this.token.defaultOperators()).to.deep.equal(defaultOperators);
         });
         });
 
 
         it('can be re-authorized', async function () {
         it('can be re-authorized', async function () {
           const { logs } = await this.token.authorizeOperator(newOperator, { from: holder });
           const { logs } = await this.token.authorizeOperator(newOperator, { from: holder });
           expectEvent.inLogs(logs, 'AuthorizedOperator', { operator: newOperator, tokenHolder: holder });
           expectEvent.inLogs(logs, 'AuthorizedOperator', { operator: newOperator, tokenHolder: holder });
 
 
-          (await this.token.isOperatorFor(newOperator, holder)).should.equal(true);
+          expect(await this.token.isOperatorFor(newOperator, holder)).to.equal(true);
         });
         });
 
 
         it('can be revoked', async function () {
         it('can be revoked', async function () {
           const { logs } = await this.token.revokeOperator(newOperator, { from: holder });
           const { logs } = await this.token.revokeOperator(newOperator, { from: holder });
           expectEvent.inLogs(logs, 'RevokedOperator', { operator: newOperator, tokenHolder: holder });
           expectEvent.inLogs(logs, 'RevokedOperator', { operator: newOperator, tokenHolder: holder });
 
 
-          (await this.token.isOperatorFor(newOperator, holder)).should.equal(false);
+          expect(await this.token.isOperatorFor(newOperator, holder)).to.equal(false);
         });
         });
       });
       });
 
 
@@ -217,14 +219,14 @@ contract('ERC777', function ([
           const { logs } = await this.token.authorizeOperator(defaultOperatorA, { from: holder });
           const { logs } = await this.token.authorizeOperator(defaultOperatorA, { from: holder });
           expectEvent.inLogs(logs, 'AuthorizedOperator', { operator: defaultOperatorA, tokenHolder: holder });
           expectEvent.inLogs(logs, 'AuthorizedOperator', { operator: defaultOperatorA, tokenHolder: holder });
 
 
-          (await this.token.isOperatorFor(defaultOperatorA, holder)).should.equal(true);
+          expect(await this.token.isOperatorFor(defaultOperatorA, holder)).to.equal(true);
         });
         });
 
 
         it('can be revoked', async function () {
         it('can be revoked', async function () {
           const { logs } = await this.token.revokeOperator(defaultOperatorA, { from: holder });
           const { logs } = await this.token.revokeOperator(defaultOperatorA, { from: holder });
           expectEvent.inLogs(logs, 'RevokedOperator', { operator: defaultOperatorA, tokenHolder: holder });
           expectEvent.inLogs(logs, 'RevokedOperator', { operator: defaultOperatorA, tokenHolder: holder });
 
 
-          (await this.token.isOperatorFor(defaultOperatorA, holder)).should.equal(false);
+          expect(await this.token.isOperatorFor(defaultOperatorA, holder)).to.equal(false);
         });
         });
 
 
         it('cannot be revoked for themselves', async function () {
         it('cannot be revoked for themselves', async function () {
@@ -240,22 +242,22 @@ contract('ERC777', function ([
           });
           });
 
 
           it('default operator is not revoked for other holders', async function () {
           it('default operator is not revoked for other holders', async function () {
-            (await this.token.isOperatorFor(defaultOperatorA, anyone)).should.equal(true);
+            expect(await this.token.isOperatorFor(defaultOperatorA, anyone)).to.equal(true);
           });
           });
 
 
           it('other default operators are not revoked', async function () {
           it('other default operators are not revoked', async function () {
-            (await this.token.isOperatorFor(defaultOperatorB, holder)).should.equal(true);
+            expect(await this.token.isOperatorFor(defaultOperatorB, holder)).to.equal(true);
           });
           });
 
 
           it('default operators list is not modified', async function () {
           it('default operators list is not modified', async function () {
-            (await this.token.defaultOperators()).should.deep.equal(defaultOperators);
+            expect(await this.token.defaultOperators()).to.deep.equal(defaultOperators);
           });
           });
 
 
           it('revoked default operator can be re-authorized', async function () {
           it('revoked default operator can be re-authorized', async function () {
             const { logs } = await this.token.authorizeOperator(defaultOperatorA, { from: holder });
             const { logs } = await this.token.authorizeOperator(defaultOperatorA, { from: holder });
             expectEvent.inLogs(logs, 'AuthorizedOperator', { operator: defaultOperatorA, tokenHolder: holder });
             expectEvent.inLogs(logs, 'AuthorizedOperator', { operator: defaultOperatorA, tokenHolder: holder });
 
 
-            (await this.token.isOperatorFor(defaultOperatorA, holder)).should.equal(true);
+            expect(await this.token.isOperatorFor(defaultOperatorA, holder)).to.equal(true);
           });
           });
         });
         });
       });
       });
@@ -424,7 +426,7 @@ contract('ERC777', function ([
     });
     });
 
 
     it('default operators list is empty', async function () {
     it('default operators list is empty', async function () {
-      (await this.token.defaultOperators()).should.deep.equal([]);
+      expect(await this.token.defaultOperators()).to.deep.equal([]);
     });
     });
   });
   });
 });
 });

+ 6 - 5
test/utils/Address.test.js

@@ -1,4 +1,5 @@
 const { constants } = require('openzeppelin-test-helpers');
 const { constants } = require('openzeppelin-test-helpers');
+const { expect } = require('chai');
 
 
 const AddressImpl = artifacts.require('AddressImpl');
 const AddressImpl = artifacts.require('AddressImpl');
 const SimpleToken = artifacts.require('SimpleToken');
 const SimpleToken = artifacts.require('SimpleToken');
@@ -12,26 +13,26 @@ contract('Address', function ([_, other]) {
 
 
   describe('isContract', function () {
   describe('isContract', function () {
     it('should return false for account address', async function () {
     it('should return false for account address', async function () {
-      (await this.mock.isContract(other)).should.equal(false);
+      expect(await this.mock.isContract(other)).to.equal(false);
     });
     });
 
 
     it('should return true for contract address', async function () {
     it('should return true for contract address', async function () {
       const contract = await SimpleToken.new();
       const contract = await SimpleToken.new();
-      (await this.mock.isContract(contract.address)).should.equal(true);
+      expect(await this.mock.isContract(contract.address)).to.equal(true);
     });
     });
   });
   });
 
 
   describe('toPayable', function () {
   describe('toPayable', function () {
     it('should return a payable address when the account is the zero address', async function () {
     it('should return a payable address when the account is the zero address', async function () {
-      (await this.mock.toPayable(constants.ZERO_ADDRESS)).should.equal(constants.ZERO_ADDRESS);
+      expect(await this.mock.toPayable(constants.ZERO_ADDRESS)).to.equal(constants.ZERO_ADDRESS);
     });
     });
 
 
     it('should return a payable address when the account is an arbitrary address', async function () {
     it('should return a payable address when the account is an arbitrary address', async function () {
-      (await this.mock.toPayable(other)).should.equal(other);
+      expect(await this.mock.toPayable(other)).to.equal(other);
     });
     });
 
 
     it('should return a payable address when the account is the all ones address', async function () {
     it('should return a payable address when the account is the all ones address', async function () {
-      (await this.mock.toPayable(ALL_ONES_ADDRESS)).should.equal(ALL_ONES_ADDRESS);
+      expect(await this.mock.toPayable(ALL_ONES_ADDRESS)).to.equal(ALL_ONES_ADDRESS);
     });
     });
   });
   });
 });
 });

+ 14 - 12
test/utils/Arrays.test.js

@@ -1,5 +1,7 @@
 require('openzeppelin-test-helpers');
 require('openzeppelin-test-helpers');
 
 
+const { expect } = require('chai');
+
 const ArraysImpl = artifacts.require('ArraysImpl');
 const ArraysImpl = artifacts.require('ArraysImpl');
 
 
 contract('Arrays', function () {
 contract('Arrays', function () {
@@ -11,23 +13,23 @@ contract('Arrays', function () {
     });
     });
 
 
     it('should return correct index for the basic case', async function () {
     it('should return correct index for the basic case', async function () {
-      (await this.arrays.findUpperBound(16)).should.be.bignumber.equal('5');
+      expect(await this.arrays.findUpperBound(16)).to.be.bignumber.equal('5');
     });
     });
 
 
     it('should return 0 for the first element', async function () {
     it('should return 0 for the first element', async function () {
-      (await this.arrays.findUpperBound(11)).should.be.bignumber.equal('0');
+      expect(await this.arrays.findUpperBound(11)).to.be.bignumber.equal('0');
     });
     });
 
 
     it('should return index of the last element', async function () {
     it('should return index of the last element', async function () {
-      (await this.arrays.findUpperBound(20)).should.be.bignumber.equal('9');
+      expect(await this.arrays.findUpperBound(20)).to.be.bignumber.equal('9');
     });
     });
 
 
     it('should return first index after last element if searched value is over the upper boundary', async function () {
     it('should return first index after last element if searched value is over the upper boundary', async function () {
-      (await this.arrays.findUpperBound(32)).should.be.bignumber.equal('10');
+      expect(await this.arrays.findUpperBound(32)).to.be.bignumber.equal('10');
     });
     });
 
 
     it('should return 0 for the element under the lower boundary', async function () {
     it('should return 0 for the element under the lower boundary', async function () {
-      (await this.arrays.findUpperBound(2)).should.be.bignumber.equal('0');
+      expect(await this.arrays.findUpperBound(2)).to.be.bignumber.equal('0');
     });
     });
   });
   });
 
 
@@ -39,23 +41,23 @@ contract('Arrays', function () {
     });
     });
 
 
     it('should return correct index for the basic case', async function () {
     it('should return correct index for the basic case', async function () {
-      (await this.arrays.findUpperBound(16)).should.be.bignumber.equal('5');
+      expect(await this.arrays.findUpperBound(16)).to.be.bignumber.equal('5');
     });
     });
 
 
     it('should return 0 for the first element', async function () {
     it('should return 0 for the first element', async function () {
-      (await this.arrays.findUpperBound(11)).should.be.bignumber.equal('0');
+      expect(await this.arrays.findUpperBound(11)).to.be.bignumber.equal('0');
     });
     });
 
 
     it('should return index of the last element', async function () {
     it('should return index of the last element', async function () {
-      (await this.arrays.findUpperBound(21)).should.be.bignumber.equal('10');
+      expect(await this.arrays.findUpperBound(21)).to.be.bignumber.equal('10');
     });
     });
 
 
     it('should return first index after last element if searched value is over the upper boundary', async function () {
     it('should return first index after last element if searched value is over the upper boundary', async function () {
-      (await this.arrays.findUpperBound(32)).should.be.bignumber.equal('11');
+      expect(await this.arrays.findUpperBound(32)).to.be.bignumber.equal('11');
     });
     });
 
 
     it('should return 0 for the element under the lower boundary', async function () {
     it('should return 0 for the element under the lower boundary', async function () {
-      (await this.arrays.findUpperBound(2)).should.be.bignumber.equal('0');
+      expect(await this.arrays.findUpperBound(2)).to.be.bignumber.equal('0');
     });
     });
   });
   });
 
 
@@ -67,7 +69,7 @@ contract('Arrays', function () {
     });
     });
 
 
     it('should return index of first element in next filled range', async function () {
     it('should return index of first element in next filled range', async function () {
-      (await this.arrays.findUpperBound(17)).should.be.bignumber.equal('5');
+      expect(await this.arrays.findUpperBound(17)).to.be.bignumber.equal('5');
     });
     });
   });
   });
 
 
@@ -77,7 +79,7 @@ contract('Arrays', function () {
     });
     });
 
 
     it('should always return 0 for empty array', async function () {
     it('should always return 0 for empty array', async function () {
-      (await this.arrays.findUpperBound(10)).should.be.bignumber.equal('0');
+      expect(await this.arrays.findUpperBound(10)).to.be.bignumber.equal('0');
     });
     });
   });
   });
 });
 });

+ 3 - 1
test/utils/ReentrancyGuard.test.js

@@ -1,12 +1,14 @@
 const { expectRevert } = require('openzeppelin-test-helpers');
 const { expectRevert } = require('openzeppelin-test-helpers');
 
 
+const { expect } = require('chai');
+
 const ReentrancyMock = artifacts.require('ReentrancyMock');
 const ReentrancyMock = artifacts.require('ReentrancyMock');
 const ReentrancyAttack = artifacts.require('ReentrancyAttack');
 const ReentrancyAttack = artifacts.require('ReentrancyAttack');
 
 
 contract('ReentrancyGuard', function () {
 contract('ReentrancyGuard', function () {
   beforeEach(async function () {
   beforeEach(async function () {
     this.reentrancyMock = await ReentrancyMock.new();
     this.reentrancyMock = await ReentrancyMock.new();
-    (await this.reentrancyMock.counter()).should.be.bignumber.equal('0');
+    expect(await this.reentrancyMock.counter()).to.be.bignumber.equal('0');
   });
   });
 
 
   it('should not allow remote callback', async function () {
   it('should not allow remote callback', async function () {