@fgv/ts-utils-jest
Version:
Custom matchers for ts-utils result class
30 lines • 1.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.matcherName = void 0;
exports.predicate = predicate;
/* eslint-disable @typescript-eslint/no-unused-vars,no-unused-vars */
const expect_utils_1 = require("@jest/expect-utils");
const jest_matcher_utils_1 = require("jest-matcher-utils");
const ts_utils_1 = require("../../ts-utils");
exports.matcherName = 'toFailTestWith';
function predicate(cb, expected) {
const cbResult = (0, ts_utils_1.captureResult)(() => cb());
if (cbResult.isFailure()) {
let success = false;
if (expected instanceof RegExp) {
success = cbResult.message.match(expected) !== null;
}
else if (typeof expected === 'string') {
success = cbResult.message === expected;
}
else if (Array.isArray(expected)) {
success = (0, expect_utils_1.equals)(cbResult.message.split('\n'), expected);
}
else {
return (0, ts_utils_1.fail)(`Unsupported expected value "${(0, jest_matcher_utils_1.stringify)(expected)}" for toFailTestWith`);
}
return success ? (0, ts_utils_1.succeed)(cbResult.message) : (0, ts_utils_1.fail)(cbResult.message);
}
return (0, ts_utils_1.fail)('');
}
//# sourceMappingURL=predicate.js.map