@defi-wonderland/lopt
TypeScript icon, indicating that this package has built-in type declarations

1.0.0 • Public • Published

lopt

NPM Package

lopt is a utility package that can generate mock Solidity contracts in the form of fakes and mocks.

lopt is based in @eth-optimism/smock, sinon and sinon-chai.

Some benefits of using lopt:

  • Test syntax is easy to understand, just like sinon-chai
  • Supports both chai expect and should syntax
  • Fully typed objects, that will extend your contract functions when using typechain (highly recommended)
  • Mock and assert contract calls, without the need of even deploying it by using fakes
  • If you need your contract logic, just wrap it in a mock and start asserting calls or changing behaviour
  • Fully tested library

Documentation

Documentation is available here.


Installation

You can easily install lopt via npm:

npm install --save-dev @defi-wonderland/lopt

Or via yarn:

yarn add --dev @defi-wonderland/lopt

How to use

...
import { FakeContract, lopt } from '@defi-wonderland/lopt';

chai.should(); // if you like should syntax
chai.use(lopt.matchers);

describe('MyContract', () => {
    let myContractFake: FakeContract<MyContract>;

    beforeEach(async () => {
        ...
        myContractFake = await lopt.fake<MyContract>('MyContract');
    });

    it('some test', () => {
        ...
        myContractFake.bark.atCall(0).should.be.calledWith('Hello World');
    });
});

Why the name lopt?

Loki's alternative name is Lopt, and Loki was obviously taken.

Loki is the God of Mischief, a trickster, and the purpose of mocking libraries is basically to trick the tests.

Package Sidebar

Install

npm i @defi-wonderland/lopt

Weekly Downloads

1

Version

1.0.0

License

MIT

Unpacked Size

107 kB

Total Files

67

Last publish

Collaborators

  • wonderland-bot
  • fvictorio
  • alcuadrado
  • wei3erhase
  • 0xgorilla
  • kelvinfichter