|
@@ -1,24 +1,18 @@
|
|
|
-const should = require('chai').should();
|
|
|
+const BigNumber = web3.BigNumber;
|
|
|
+const should = require('chai')
|
|
|
+ .use(require('chai-bignumber')(BigNumber))
|
|
|
+ .should();
|
|
|
|
|
|
function inLogs (logs, eventName, eventArgs = {}) {
|
|
|
const event = logs.find(function (e) {
|
|
|
if (e.event === eventName) {
|
|
|
- let matches = true;
|
|
|
-
|
|
|
for (const [k, v] of Object.entries(eventArgs)) {
|
|
|
- if (e.args[k] !== v) {
|
|
|
- matches = false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (matches) {
|
|
|
- return true;
|
|
|
+ contains(e.args, k, v);
|
|
|
}
|
|
|
+ return true;
|
|
|
}
|
|
|
});
|
|
|
-
|
|
|
should.exist(event);
|
|
|
-
|
|
|
return event;
|
|
|
}
|
|
|
|
|
@@ -27,6 +21,20 @@ async function inTransaction (tx, eventName, eventArgs = {}) {
|
|
|
return inLogs(logs, eventName, eventArgs);
|
|
|
}
|
|
|
|
|
|
+function contains (args, key, value) {
|
|
|
+ if (isBigNumber(args[key])) {
|
|
|
+ args[key].should.be.bignumber.equal(value);
|
|
|
+ } else {
|
|
|
+ args[key].should.be.equal(value);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+function isBigNumber (object) {
|
|
|
+ return object.isBigNumber ||
|
|
|
+ object instanceof BigNumber ||
|
|
|
+ (object.constructor && object.constructor.name === 'BigNumber');
|
|
|
+}
|
|
|
+
|
|
|
module.exports = {
|
|
|
inLogs,
|
|
|
inTransaction,
|