UNPKG

assert-match

Version:
82 lines (61 loc) 2.37 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _getIterator2 = require('babel-runtime/core-js/get-iterator'); var _getIterator3 = _interopRequireDefault(_getIterator2); exports.default = buildAssert; var _asserts = require('../asserts'); var _asserts2 = _interopRequireDefault(_asserts); var _matchers = require('../matchers'); var _matchers2 = _interopRequireDefault(_matchers); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var methods = ['deepEqual', 'deepStrictEqual', 'doesNotThrow', 'equal', 'fail', 'ifError', 'notDeepEqual', 'notDeepStrictEqual', 'notEqual', 'notStrictEqual', 'ok', 'strictEqual', 'throws']; function buildAssert(baseAssert) { var assert = makeAssertion(_asserts2.default, baseAssert, 'ok'); var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = (0, _getIterator3.default)(methods), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var methodName = _step.value; assert[methodName] = makeAssertion(_asserts2.default, baseAssert, methodName); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } assert.matchers = _matchers2.default; assert.AssertionError = baseAssert.AssertionError; return assert; } function makeAssertion(asserts, baseAssert, methodName) { var assertion = void 0; var initAssertion = asserts[methodName]; if (initAssertion) { assertion = initAssertion(baseAssert); } else { assertion = baseAssert[methodName].bind(baseAssert); } return function assertionProxy() { try { return assertion.apply(null, arguments); } catch (e) { if (typeof Error.captureStackTrace === 'function') { Error.captureStackTrace(e, assertionProxy); } throw e; } }; } module.exports = exports['default'];