@0x/contracts-test-utils
Version:
Test utils for 0x contracts
37 lines • 1.5 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.verifyEventsFromLogs = exports.verifyEvents = exports.filterLogsToArguments = exports.filterLogs = void 0;
const chai_setup_1 = require("./chai_setup");
/**
* Filter logs by event name/type.
*/
function filterLogs(logs, event) {
return logs.filter(log => log.event === event);
}
exports.filterLogs = filterLogs;
/**
* Filter logs by event name/type and convert to arguments.
*/
function filterLogsToArguments(logs, event) {
return filterLogs(logs, event).map(log => log.args);
}
exports.filterLogsToArguments = filterLogsToArguments;
/**
* Verifies that a transaction emitted the expected events of a particular type.
*/
function verifyEvents(txReceipt, expectedEvents, eventName) {
return verifyEventsFromLogs(txReceipt.logs, expectedEvents, eventName);
}
exports.verifyEvents = verifyEvents;
/**
* Given a collection of logs, verifies that matching events are identical.
*/
function verifyEventsFromLogs(logs, expectedEvents, eventName) {
const _logs = filterLogsToArguments(logs, eventName);
(0, chai_setup_1.expect)(_logs.length, `Number of ${eventName} events emitted`).to.eq(expectedEvents.length);
_logs.forEach((log, index) => {
(0, chai_setup_1.expect)(log, `${eventName} event ${index}`).to.deep.equal(Object.assign(Object.assign({}, log), expectedEvents[index]));
});
}
exports.verifyEventsFromLogs = verifyEventsFromLogs;
//# sourceMappingURL=log_utils.js.map
;