add-matchers
Version:
Write useful test matchers compatible with Jest and Jasmine.
47 lines (46 loc) • 1.53 kB
JavaScript
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;
};
;