rhlsthrm / typescript-solidity-dev-starter-kit

Starter kit for smart contract development using Typescript
410 stars 127 forks source link

"Called on contract" chai matchers don't work #9

Open PaulRBerg opened 4 years ago

PaulRBerg commented 4 years ago

Description

As per the waffle docs, we should be able to use the calledOnContract and calledOnContractWith chai matchers:

await token.balanceOf(wallet.address)

expect('balanceOf').to.be.calledOnContract(token);

But they don't work in this project.

How to Reproduce

Modify the "should count up" test like this:

it("should count up", async () => {
  await counter.countUp();
  let count = await counter.getCount();
  expect(count).to.eq(1);
  expect("getCount").to.be.calledOnContract(counter);
});

You will get the following error when running the test:

TypeError: contract.provider must be a MockProvider

PaulRBerg commented 4 years ago

After a bit of investigation, I found out that this is a bug, either in Waffle or in Buidler's integration thereof: https://github.com/nomiclabs/buidler/issues/638

rhlsthrm commented 4 years ago

Thanks for reporting. I'll watch the linked issues and add this to the examples.