UNPKG

add-matchers

Version:

Write useful test matchers compatible with Jest and Jasmine.

47 lines (46 loc) 1.53 kB
"use strict"; exports.__esModule = true; var createAdapter = function (scope) { if (scope.expect && scope.expect.extend) { return require('./jest').getJestAdapter(scope); } if (scope.jasmine && scope.jasmine.addMatchers) { return require('./jasmine-v2').getJasmineV2Adapter(scope); } if (scope.jasmine) { return require('./jasmine-v1').getJasmineV1Adapter(scope); } return null; }; var forEachMatcher = function (matchersByName, fn) { for (var name_1 in matchersByName) { if (matchersByName.hasOwnProperty(name_1) && name_1.charAt(0) !== '_') { fn(name_1, matchersByName[name_1]); } } }; exports.createApi = function (scope) { var adapter = createAdapter(scope); var addMatchers = function (matchersByName) { forEachMatcher(matchersByName, adapter); }; var addAsymmetricMatcher = function (name, matcher) { scope.any[name] = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } return ({ asymmetricMatch: function (actual) { return matcher.apply(this, args.concat([actual])); } }); }; }; var addAsymmetricMatchers = function (matchersByName) { scope.any = {}; forEachMatcher(matchersByName, addAsymmetricMatcher); }; addMatchers.asymmetric = addAsymmetricMatchers; return addMatchers; };