@0x/assert: Add isNumberLike assertion

This commit is contained in:
Lawrence Forman 2019-05-18 02:03:17 -04:00 committed by Amir Bandeali
parent 14167412e0
commit 339fc9ff14
3 changed files with 19 additions and 0 deletions

View File

@ -5,6 +5,10 @@
{
"note": "Add new assertions: `isArray`, `isBlockParam` and `isNumberOrBigNumber`",
"pr": 1823
},
{
"note": "Add `isNumberLike()` assertion",
"pr": 1819
}
],
"timestamp": 1563006338

View File

@ -10,6 +10,11 @@ export const assert = {
const isBigNumber = BigNumber.isBigNumber(value);
assert.assert(isBigNumber, assert.typeAssertionMessage(variableName, 'BigNumber', value));
},
isNumberLike(variableName: string, value: BigNumber | number): void {
const isBigNumber = BigNumber.isBigNumber(value);
const isNumber = typeof value === 'number';
assert.assert(isBigNumber || isNumber, assert.typeAssertionMessage(variableName, 'BigNumber | number', value));
},
isValidBaseUnitAmount(variableName: string, value: BigNumber): void {
assert.isBigNumber(variableName, value);
const isNegative = value.isLessThan(0);

View File

@ -23,6 +23,16 @@ describe('Assertions', () => {
invalidInputs.forEach(input => expect(assert.isBigNumber.bind(assert, variableName, input)).to.throw());
});
});
describe('#isNumberLike', () => {
it('should not throw for valid input', () => {
const validInputs = [new BigNumber(23), 23];
validInputs.forEach(input => expect(assert.isNumberLike.bind(assert, variableName, input)).to.not.throw());
});
it('should throw for invalid input', () => {
const invalidInputs = ['test', false, { random: 'test' }, undefined];
invalidInputs.forEach(input => expect(assert.isNumberLike.bind(assert, variableName, input)).to.throw());
});
});
describe('#isValidBaseUnitAmount', () => {
it('should not throw for valid input', () => {
const validInputs = [new BigNumber(23), new BigNumber('45000000')];