UNPKG

softkave-js-utils

Version:

JavaScript & Typescript utility functions, types, and classes

49 lines 1.88 kB
import assert from 'assert'; import { isFunction, isString, isUndefined } from 'lodash-es'; import { checkErrorHasMessage, } from './checkErrorHasMessage.js'; import { checkErrorHasName } from './checkErrorHasName.js'; export function checkExpected(error, expected) { if ((expected === null || expected === void 0 ? void 0 : expected.expectFn) && isFunction(expected === null || expected === void 0 ? void 0 : expected.expectFn)) { const assertion = expected.expectFn(error); if (!isUndefined(assertion)) { assert(assertion === true, isString(assertion) ? assertion : 'Expectation not met'); } } if (expected === null || expected === void 0 ? void 0 : expected.name) { const assertion = checkErrorHasName(error, expected.name, expected.shouldMatchAtLeastOne); assert(assertion.matches, `Missing errors names: ${JSON.stringify(assertion.missingNames)}`); } if (expected === null || expected === void 0 ? void 0 : expected.message) { const assertion = checkErrorHasMessage(error, expected.message, expected.messageMatcher, expected.shouldMatchAtLeastOne); assert(assertion.matches, `Missing errors messages: ${JSON.stringify(assertion.missingMessages)}`); } } export function expectErrorThrownSync(fn, expected, finallyFn) { try { fn(); assert.fail('Error not thrown'); } catch (error) { checkExpected(error, expected); } finally { if (finallyFn) { finallyFn(); } } } export async function expectErrorThrownAsync(fn, expected, finallyFn) { try { await fn(); assert.fail('Error not thrown'); } catch (error) { checkExpected(error, expected); } finally { if (finallyFn) { finallyFn(); } } } //# sourceMappingURL=expectErrorThrown.js.map