npm install --save-dev chai-bn
const chai = require('chai'); const BN = require('bn.js'); // Enable and inject BN dependency chai.use(require('chai-bn')(BN));
The following assertion methods are provided and will override the existing builtin assertions if the
bignumber property is set as part of the assertion chain:
A set of additional assertion properties is also provided:
Actual values (i.e. the values being asserted) must be instances of
BN. Expected values (i.e. the values the actual value is expected to match) may be instances of either
BigNumber instances for both actual and expected values.
Only BDD style (
should) assertions are supported.
const actual = new BN('100000000000000000').plus(new BN('1')); const expected = '100000000000000001'; actual.should.be.a.bignumber.that.equals(expected); expect(actual).to.be.a.bignumber.that.is.at.most(expected); (new BN('1000')).should.be.a.bignumber.that.is.lessThan('2000');
(new BN('-100')).should.be.a.bignumber.that.is.negative; expect(new BN('1').sub(new BN('1'))).to.be.a.bignumber.that.is.zero;
Chai properties (e.g. the
that.is chain) have no effect other than increasing readability, and can be dropped if less verbosity is desired.