hardhat-helpers
TypeScript icon, indicating that this package has built-in type declarations

0.1.62 • Public • Published

hardhat-helpers

Test helpers for Hardhat.

yarn add hardhat-helpers

Snapshot Each

Replaces the first beforeEach in a test file to improve performance similar to Hardhat's fixtures -- but with a more familiar syntax.

Example:

import { snapshotEach } from "hardhat-helpers";

let someContract;

snapshotEach(async () => {
  someContract = await deployContract();
});

it("Test like normal", async () => {
  expect(await someContract.method()).toEqual(42);
});

it("Next test reuses the original deployment", async () => {
  expect(await someContract.otherMethod()).toEqual(69);
});

It runs like normal for the first test, and then each additional test rolls back the node instead of redeploying.

Expect All Events

Checks the tx for the exact logs specified including order, count, and args.

import { expectAllEvents } from "hardhat-helpers";

it("Emits", async () => {
  const tx = await magicContract.magic();
  await expectAllEvents(tx, [
    {
      contract: magicContract,
      event: "MagicStarted",
      args: [42],
    },
    {
      contract: magicContract,
      event: "MagicHappened",
      args: [69],
    },
  ]);
});

Time Travel

Simple helpers to modify the block time in tests. Several variations are supported: see time.ts for a complete list.

import { increaseTime } from "hardhat-helpers";

it("Do something later", async () => {
  await timeContract.queue();
  await increaseTime(10); // in seconds
  await timeContract.process();
});

And more...

TODO: more docs

Readme

Keywords

none

Package Sidebar

Install

npm i hardhat-helpers

Weekly Downloads

249

Version

0.1.62

License

MIT

Unpacked Size

625 kB

Total Files

168

Last publish

Collaborators

  • nickcuso