0.5.16 • Published 2 years ago

@openzeppelin/test-helpers v0.5.16

Weekly downloads
8,544
License
MIT
Repository
github
Last release
2 years ago

OpenZeppelin Test Helpers

Docs NPM Package Build Status

Assertion library for Ethereum smart contract testing. Make sure your contracts behave as expected.

Overview

Installation

npm install --save-dev @openzeppelin/test-helpers

Hardhat

Install web3 and the hardhat-web3 plugin.

npm install --save-dev @nomiclabs/hardhat-web3 web3

Remember to include the plugin in your configuration as explained in the installation instructions.

Usage

Import @openzeppelin/test-helpers in your test files to access the different assertions and utilities.

const {
  BN,           // Big Number support
  constants,    // Common constants, like the zero address and largest integers
  expectEvent,  // Assertions for emitted events
  expectRevert, // Assertions for transactions that should fail
} = require('@openzeppelin/test-helpers');

const ERC20 = artifacts.require('ERC20');

contract('ERC20', function ([sender, receiver]) {
  beforeEach(async function () {
    // The bundled BN library is the same one web3 uses under the hood
    this.value = new BN(1);

    this.erc20 = await ERC20.new();
  });

  it('reverts when transferring tokens to the zero address', async function () {
    // Conditions that trigger a require statement can be precisely tested
    await expectRevert(
      this.erc20.transfer(constants.ZERO_ADDRESS, this.value, { from: sender }),
      'ERC20: transfer to the zero address',
    );
  });

  it('emits a Transfer event on successful transfers', async function () {
    const receipt = await this.erc20.transfer(
      receiver, this.value, { from: sender }
    );

    // Event assertions can verify that the arguments are the expected ones
    expectEvent(receipt, 'Transfer', {
      from: sender,
      to: receiver,
      value: this.value,
    });
  });

  it('updates balances on successful transfers', async function () {
    this.erc20.transfer(receiver, this.value, { from: sender });

    // BN assertions are automatically available via chai-bn (if using Chai)
    expect(await this.erc20.balanceOf(receiver))
      .to.be.bignumber.equal(this.value);
  });
});

Learn More

License

MIT

liquidity-provider-sc@sirenprotocol/contractsoff-ramp-hackathon@bamboo-defi/bamboo-defi-core@bamboo-defi/bamboodefi-core-testdashabi-farmalpes-smart@blockfold/auditetherless@livelyverse/lively-core-onchain@infinitebrahmanuniverse/nolb-_openzgu-erc777-basic@everything-registry/sub-chunk-691kongtama_coreleparfumeinherichainmerklemintnonfungibletokencontract@spherex-xyz/poolz-helper-v2erc1155diamonderc1155diamondstoragegoswap-coregsnnelohardlydifficult-ethereum-contractseth-receiver2@tulipswap/tulip-swap-farms@tungpv/coreqilin-v2@thales-dao/contracts@royalhalo/core@rsksmart/rif-scheduler-sdkpoolz-helper-v2poolz-locked-deal-v2poolz-multi-senderpoolz-delay-vaultpoolz-flex-staking@saladswap/saladswapopenswap-coreartkdev-investmentartkdev-lockingartkdev-profitartkdev-registrationartkdev-saleartkdev-stakingartkdev-temptokenartkdev-tokenartkdev-whitelistartkdev-helperartkdev-whitelistowners@animoca/ethereum-contracts-core_library@unizen-io/unizen-token-bridgebraver-btc-network@cpchain-tools/dapps-test-helperschainscore@dx-gov-test/dxdao-contracts@elpis-global/nftsvesting-contracts@julswap/v1-core@interplanetary-lab/smart-contracts@intercoin/fundcontract@intercoin/nonfungibletokencontract@intercoin/sales@intercoin/staking@intercoin/tradedtokencontract@intercoin/community@kgcdream2019/v1-core@kimtony/xxx@knsdomain/buffer@knsdomain/dnssec-oracle@knsdomain/kns@knsdomain/resolvers@knsdomain/solsha1x1-sfctoken-sale-contractstoken_distributiontoken_with_distribution@levx/sushiswap-coreworld-contract@fairmint/c-org-contractssingularitynet-token-manager@defi-warrior/farmd_hold_coredefiner-jsstn5_membershipstaking-contractscropterbtcfamercore_puzzle@bsc-bns/bscbns@brinkninja/brink-adapters@brinkninja/brink-verifiersrubic-bridge-basetest-sashimivaulttest-whitelisttemp-whitelisttemp-project-atemp-poolz-helper-v2@chainscore/client@chainscore/contracts@bnsdomain/bns@bnsdomain/buffer
0.5.16

2 years ago

0.5.14

2 years ago

0.5.15

2 years ago

0.5.13-0

3 years ago

0.5.13

3 years ago

0.5.12

3 years ago

0.5.11

3 years ago

0.5.10

3 years ago

0.5.8

3 years ago

0.5.9

3 years ago

0.5.8-rc.0

3 years ago

0.5.7

3 years ago

0.5.6

4 years ago

0.5.6-rc.0

4 years ago

0.5.5

4 years ago

0.5.5-rc.0

4 years ago

0.5.4

4 years ago

0.5.4-rc.0

4 years ago

0.5.3

4 years ago

0.5.2

4 years ago

0.5.2-rc.0

4 years ago

0.5.1

4 years ago