chai-bignumber
Advanced tools
Comparing version 2.0.2 to 3.0.0
@@ -1,17 +0,22 @@ | ||
module.exports = function(BigNumber){ | ||
module.exports = function (BigNumber) { | ||
BigNumber = BigNumber || require('bignumber.js'); | ||
var round = BigNumber.prototype.round || BigNumber.prototype.decimalPlaces; | ||
var isEqualTo = BigNumber.prototype.isEqualTo || BigNumber.prototype.equals; | ||
var isGreaterThan = BigNumber.prototype.isGreaterThan || BigNumber.prototype.greaterThan; | ||
var isGreaterThanOrEqualTo = BigNumber.prototype.isGreaterThanOrEqualTo || BigNumber.prototype.greaterThanOrEqualTo; | ||
var isLessThan = BigNumber.prototype.isLessThan || BigNumber.prototype.lessThan; | ||
var isLessThanOrEqualTo = BigNumber.prototype.isLessThanOrEqualTo || BigNumber.prototype.lessThanOrEqualTo; | ||
return function (chai, utils) { | ||
chai.Assertion.addProperty('bignumber', function() { | ||
chai.Assertion.addProperty('bignumber', function () { | ||
utils.flag(this, 'bignumber', true); | ||
}); | ||
var isBigNumber = function(object) { | ||
var isBigNumber = function (object) { | ||
return object.isBigNumber || | ||
object instanceof BigNumber || | ||
(object.constructor && object.constructor.name === 'BigNumber') | ||
} | ||
object instanceof BigNumber || | ||
(object.constructor && object.constructor.name === 'BigNumber'); | ||
}; | ||
var convert = function(value, dp, rm) { | ||
var convert = function (value, dp, rm) { | ||
var number; | ||
@@ -32,3 +37,3 @@ | ||
} | ||
number = number.round(dp, rm); | ||
number = round.bind(number)(dp, rm); | ||
} | ||
@@ -39,5 +44,5 @@ | ||
var override = function(fn) { | ||
return function (_super) { | ||
return function(value, dp, rm) { | ||
var overwriteMethods = function (names, fn) { | ||
function overwriteMethod(original) { | ||
return function (value, dp, rm) { | ||
if (utils.flag(this, 'bignumber')) { | ||
@@ -48,12 +53,15 @@ var expected = convert(value, dp, rm); | ||
} else { | ||
_super.apply(this, arguments); | ||
original.apply(this, arguments); | ||
} | ||
}; | ||
}; | ||
} | ||
for (var i = 0; i < names.length; i++) { | ||
chai.Assertion.overwriteMethod(names[i], overwriteMethod); | ||
} | ||
}; | ||
// BigNumber.equals | ||
var equals = override(function(expected, actual) { | ||
// BigNumber.isEqualTo | ||
overwriteMethods(['equal', 'equals', 'eq'], function (expected, actual) { | ||
this.assert( | ||
expected.equals(actual), | ||
isEqualTo.bind(expected)(actual), | ||
'expected #{act} to equal #{exp}', | ||
@@ -65,10 +73,7 @@ 'expected #{act} to be different from #{exp}', | ||
}); | ||
chai.Assertion.overwriteMethod('equal', equals); | ||
chai.Assertion.overwriteMethod('equals', equals); | ||
chai.Assertion.overwriteMethod('eq', equals); | ||
// BigNumber.greaterThan | ||
var greaterThan = override(function(expected, actual) { | ||
// BigNumber.isGreaterThan | ||
overwriteMethods(['above', 'gt', 'greaterThan'], function (expected, actual) { | ||
this.assert( | ||
actual.greaterThan(expected), | ||
isGreaterThan.bind(actual)(expected), | ||
'expected #{act} to be greater than #{exp}', | ||
@@ -80,10 +85,7 @@ 'expected #{act} to be less than or equal to #{exp}', | ||
}); | ||
chai.Assertion.overwriteMethod('above', greaterThan); | ||
chai.Assertion.overwriteMethod('gt', greaterThan); | ||
chai.Assertion.overwriteMethod('greaterThan', greaterThan); | ||
// BigNumber.greaterThanOrEqualTo | ||
var greaterThanOrEqualTo = override(function(expected, actual) { | ||
// BigNumber.isGreaterThanOrEqualTo | ||
overwriteMethods(['least', 'gte'], function (expected, actual) { | ||
this.assert( | ||
actual.greaterThanOrEqualTo(expected), | ||
isGreaterThanOrEqualTo.bind(actual)(expected), | ||
'expected #{act} to be greater than or equal to #{exp}', | ||
@@ -95,9 +97,7 @@ 'expected #{act} to be less than #{exp}', | ||
}); | ||
chai.Assertion.overwriteMethod('least', greaterThanOrEqualTo); | ||
chai.Assertion.overwriteMethod('gte', greaterThanOrEqualTo); | ||
// BigNumber.lessThan | ||
var lessThan = override(function(expected, actual) { | ||
// BigNumber.isLessThan | ||
overwriteMethods(['below', 'lt', 'lessThan'], function (expected, actual) { | ||
this.assert( | ||
actual.lessThan(expected), | ||
isLessThan.bind(actual)(expected), | ||
'expected #{act} to be less than #{exp}', | ||
@@ -109,10 +109,7 @@ 'expected #{act} to be greater than or equal to #{exp}', | ||
}); | ||
chai.Assertion.overwriteMethod('below', lessThan); | ||
chai.Assertion.overwriteMethod('lt', lessThan); | ||
chai.Assertion.overwriteMethod('lessThan', lessThan); | ||
// BigNumber.lessThanOrEqualTo | ||
var lessThanOrEqualTo = override(function(expected, actual) { | ||
// BigNumber.isLessThanOrEqualTo | ||
overwriteMethods(['most', 'lte'], function (expected, actual) { | ||
this.assert( | ||
actual.lessThanOrEqualTo(expected), | ||
isLessThanOrEqualTo.bind(actual)(expected), | ||
'expected #{act} to be less than or equal to #{exp}', | ||
@@ -124,4 +121,2 @@ 'expected #{act} to be greater than #{exp}', | ||
}); | ||
chai.Assertion.overwriteMethod('most', lessThanOrEqualTo); | ||
chai.Assertion.overwriteMethod('lte', lessThanOrEqualTo); | ||
@@ -128,0 +123,0 @@ // BigNumber.isFinite |
{ | ||
"name": "chai-bignumber", | ||
"version": "2.0.2", | ||
"version": "3.0.0", | ||
"description": "Chai assertions for comparing arbitrary-precision decimals using the bignumber.js library", | ||
@@ -11,6 +11,6 @@ "main": "chai-bignumber.js", | ||
"devDependencies": { | ||
"bignumber.js": "^4.0.2", | ||
"chai": "^3.5.0", | ||
"bignumber.js": "^8.0.1", | ||
"chai": "^4.2.0", | ||
"jshint": "^2.9.2", | ||
"mocha": "^2.5.3" | ||
"mocha": "^5.2.0" | ||
}, | ||
@@ -38,3 +38,6 @@ "author": "António Marques <me@antoniomarques.eu>", | ||
"bignumber" | ||
], | ||
"files": [ | ||
"chai-bignumber.js" | ||
] | ||
} | ||
} |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
9241
4
143
1