New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

chai-bignumber

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

chai-bignumber - npm Package Compare versions

Comparing version 1.0.0 to 2.0.0

275

chai-bignumber.js

@@ -1,155 +0,158 @@

var BigNumber = require('bignumber.js');
module.exports = function(BigNumber){
module.exports = function (chai, utils) {
chai.Assertion.addProperty('bignumber', function() {
utils.flag(this, 'bignumber', true);
});
BigNumber = BigNumber || require('bignumber.js');
var convert = function(value, dp, rm) {
var number;
return function (chai, utils) {
chai.Assertion.addProperty('bignumber', function() {
utils.flag(this, 'bignumber', true);
});
if (typeof value === 'string' || typeof value === 'number') {
number = new BigNumber(value);
} else if (value instanceof BigNumber) {
number = value;
} else {
new chai.Assertion(value).assert(false,
'expected #{act} to be an instance of string, number or BigNumber');
}
var convert = function(value, dp, rm) {
var number;
if (parseInt(dp) === dp) {
if (rm === undefined) {
rm = BigNumber.ROUND_HALF_UP;
if (typeof value === 'string' || typeof value === 'number') {
number = new BigNumber(value);
} else if (value instanceof BigNumber) {
number = value;
} else {
new chai.Assertion(value).assert(false,
'expected #{act} to be an instance of string, number or BigNumber');
}
number = number.round(dp, rm);
}
return number;
};
if (parseInt(dp) === dp) {
if (rm === undefined) {
rm = BigNumber.ROUND_HALF_UP;
}
number = number.round(dp, rm);
}
var override = function(fn) {
return function (_super) {
return function(value, dp, rm) {
if (utils.flag(this, 'bignumber')) {
var expected = convert(value, dp, rm);
var actual = convert(this._obj, dp, rm);
fn.apply(this, [expected, actual]);
} else {
_super.apply(this, arguments);
}
return number;
};
var override = function(fn) {
return function (_super) {
return function(value, dp, rm) {
if (utils.flag(this, 'bignumber')) {
var expected = convert(value, dp, rm);
var actual = convert(this._obj, dp, rm);
fn.apply(this, [expected, actual]);
} else {
_super.apply(this, arguments);
}
};
};
};
};
// BigNumber.equals
var equals = override(function(expected, actual) {
this.assert(
expected.equals(actual),
'expected #{act} to equal #{exp}',
'expected #{act} to be different from #{exp}',
expected.toString(),
actual.toString()
);
});
chai.Assertion.overwriteMethod('equal', equals);
chai.Assertion.overwriteMethod('equals', equals);
chai.Assertion.overwriteMethod('eq', equals);
// BigNumber.equals
var equals = override(function(expected, actual) {
this.assert(
expected.equals(actual),
'expected #{act} to equal #{exp}',
'expected #{act} to be different from #{exp}',
expected.toString(),
actual.toString()
);
});
chai.Assertion.overwriteMethod('equal', equals);
chai.Assertion.overwriteMethod('equals', equals);
chai.Assertion.overwriteMethod('eq', equals);
// BigNumber.greaterThan
var greaterThan = override(function(expected, actual) {
this.assert(
actual.greaterThan(expected),
'expected #{act} to be greater than #{exp}',
'expected #{act} to be less than or equal to #{exp}',
expected.toString(),
actual.toString()
);
});
chai.Assertion.overwriteMethod('above', greaterThan);
chai.Assertion.overwriteMethod('gt', greaterThan);
chai.Assertion.overwriteMethod('greaterThan', greaterThan);
// BigNumber.greaterThan
var greaterThan = override(function(expected, actual) {
this.assert(
actual.greaterThan(expected),
'expected #{act} to be greater than #{exp}',
'expected #{act} to be less than or equal to #{exp}',
expected.toString(),
actual.toString()
);
});
chai.Assertion.overwriteMethod('above', greaterThan);
chai.Assertion.overwriteMethod('gt', greaterThan);
chai.Assertion.overwriteMethod('greaterThan', greaterThan);
// BigNumber.greaterThanOrEqualTo
var greaterThanOrEqualTo = override(function(expected, actual) {
this.assert(
actual.greaterThanOrEqualTo(expected),
'expected #{act} to be greater than or equal to #{exp}',
'expected #{act} to be less than #{exp}',
expected.toString(),
actual.toString()
);
});
chai.Assertion.overwriteMethod('least', greaterThanOrEqualTo);
chai.Assertion.overwriteMethod('gte', greaterThanOrEqualTo);
// BigNumber.greaterThanOrEqualTo
var greaterThanOrEqualTo = override(function(expected, actual) {
this.assert(
actual.greaterThanOrEqualTo(expected),
'expected #{act} to be greater than or equal to #{exp}',
'expected #{act} to be less than #{exp}',
expected.toString(),
actual.toString()
);
});
chai.Assertion.overwriteMethod('least', greaterThanOrEqualTo);
chai.Assertion.overwriteMethod('gte', greaterThanOrEqualTo);
// BigNumber.lessThan
var lessThan = override(function(expected, actual) {
this.assert(
actual.lessThan(expected),
'expected #{act} to be less than #{exp}',
'expected #{act} to be greater than or equal to #{exp}',
expected.toString(),
actual.toString()
);
});
chai.Assertion.overwriteMethod('below', lessThan);
chai.Assertion.overwriteMethod('lt', lessThan);
chai.Assertion.overwriteMethod('lessThan', lessThan);
// BigNumber.lessThan
var lessThan = override(function(expected, actual) {
this.assert(
actual.lessThan(expected),
'expected #{act} to be less than #{exp}',
'expected #{act} to be greater than or equal to #{exp}',
expected.toString(),
actual.toString()
);
});
chai.Assertion.overwriteMethod('below', lessThan);
chai.Assertion.overwriteMethod('lt', lessThan);
chai.Assertion.overwriteMethod('lessThan', lessThan);
// BigNumber.lessThanOrEqualTo
var lessThanOrEqualTo = override(function(expected, actual) {
this.assert(
actual.lessThanOrEqualTo(expected),
'expected #{act} to be less than or equal to #{exp}',
'expected #{act} to be greater than #{exp}',
expected.toString(),
actual.toString()
);
});
chai.Assertion.overwriteMethod('most', lessThanOrEqualTo);
chai.Assertion.overwriteMethod('lte', lessThanOrEqualTo);
// BigNumber.lessThanOrEqualTo
var lessThanOrEqualTo = override(function(expected, actual) {
this.assert(
actual.lessThanOrEqualTo(expected),
'expected #{act} to be less than or equal to #{exp}',
'expected #{act} to be greater than #{exp}',
expected.toString(),
actual.toString()
);
});
chai.Assertion.overwriteMethod('most', lessThanOrEqualTo);
chai.Assertion.overwriteMethod('lte', lessThanOrEqualTo);
// BigNumber.isFinite
chai.Assertion.addProperty('finite', function () {
var value = convert(this._obj);
this.assert(
value.isFinite(),
'expected #{this} to be finite',
'expected #{this} to not be finite',
value.toString()
);
});
// BigNumber.isFinite
chai.Assertion.addProperty('finite', function () {
var value = convert(this._obj);
this.assert(
value.isFinite(),
'expected #{this} to be finite',
'expected #{this} to not be finite',
value.toString()
);
});
// BigNumber.isInteger
chai.Assertion.addProperty('integer', function () {
var value = convert(this._obj);
this.assert(
value.isInteger(),
'expected #{this} to be an integer',
'expected #{this} to not be an integer',
value.toString()
);
});
// BigNumber.isInteger
chai.Assertion.addProperty('integer', function () {
var value = convert(this._obj);
this.assert(
value.isInteger(),
'expected #{this} to be an integer',
'expected #{this} to not be an integer',
value.toString()
);
});
// BigNumber.isNegative
chai.Assertion.addProperty('negative', function () {
var value = convert(this._obj);
this.assert(
value.isNegative(),
'expected #{this} to be negative',
'expected #{this} to not be negative',
value.toString()
);
});
// BigNumber.isNegative
chai.Assertion.addProperty('negative', function () {
var value = convert(this._obj);
this.assert(
value.isNegative(),
'expected #{this} to be negative',
'expected #{this} to not be negative',
value.toString()
);
});
// BigNumber.isZero
chai.Assertion.addProperty('zero', function () {
var value = convert(this._obj);
this.assert(
value.isZero(),
'expected #{this} to be zero',
'expected #{this} to not be zero',
value.toString()
);
});
// BigNumber.isZero
chai.Assertion.addProperty('zero', function () {
var value = convert(this._obj);
this.assert(
value.isZero(),
'expected #{this} to be zero',
'expected #{this} to not be zero',
value.toString()
);
});
};
};
{
"name": "chai-bignumber",
"version": "1.0.0",
"version": "2.0.0",
"description": "Chai assertions for comparing arbitrary-precision decimals using the bignumber.js library",
"main": "chai-bignumber.js",
"scripts": {
"test": "jshint ./*.js && mocha ./test/*.js"
"lint": "jshint *.js",
"test": "mocha test/*.js"
},
"devDependencies": {
"bignumber.js": "^2.1.0",
"mocha": "^2.3.3",
"chai": "^3.4.0",
"jshint": "^2.8.0"
"bignumber.js": "2.3.0",
"chai": "3.5.0",
"jshint": "2.9.2",
"mocha": "2.5.3"
},

@@ -15,0 +16,0 @@ "author": "António Marques <me@antoniomarques.eu>",

@@ -16,3 +16,8 @@ # chai-bignumber

var chai = require('chai');
chai.use(require('chai-bignumber'));
//use default BigNumber
chai.use(require('chai-bignumber')());
//use custom BigNumber
chai.use(require('chai-bignumber')(BigNumber));
```

@@ -19,0 +24,0 @@

@@ -5,3 +5,3 @@ var BigNumber = require('bignumber.js');

chai.should();
chai.use(require('../chai-bignumber'));
chai.use(require('../chai-bignumber')(BigNumber));
chai.config.includeStack = true;

@@ -8,0 +8,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc