@fgv/ts-utils-jest
Version:
Custom matchers for ts-utils result class
26 lines • 1.03 kB
JavaScript
/* eslint-disable @typescript-eslint/no-unused-vars */
import { equals } from '@jest/expect-utils';
import { stringify } from 'jest-matcher-utils';
import { captureResult, fail, succeed } from '../../ts-utils';
export const matcherName = 'toFailTestWith';
export function predicate(cb, expected) {
const cbResult = 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 = equals(cbResult.message.split('\n'), expected);
}
else {
return fail(`Unsupported expected value "${stringify(expected)}" for toFailTestWith`);
}
return success ? succeed(cbResult.message) : fail(cbResult.message);
}
return fail('');
}
//# sourceMappingURL=predicate.js.map