assert-match
Version:
assert + matchers <3
47 lines (33 loc) • 1.33 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
var _assert = require('assert/');
var _assert2 = _interopRequireDefault(_assert);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = buildAssertion;
function buildAssertion(baseAssert, assertionName, matcher, operatorName) {
var AssertionError = baseAssert.AssertionError || _assert2.default.AssertionError;
var comparatorAssertion = typeof baseAssert[assertionName] === 'function' ? baseAssert[assertionName].bind(baseAssert) : _assert2.default[assertionName].bind(_assert2.default);
var comparator = function comparator(actual, expected) {
try {
comparatorAssertion(actual, expected);
return true;
} catch (e) {
return false;
}
};
return function assertion(actual, expected, message) {
var result = matcher(expected).match(actual, comparator);
if (!result.match) {
throw new AssertionError({
actual: result.actual,
expected: result.expected,
operator: operatorName,
stackStartFunction: assertion,
message: message
});
}
};
}
module.exports = exports['default'];
;