UNPKG

softkave-js-utils

Version:

JavaScript & Typescript utility functions, types, and classes

39 lines 1.56 kB
import { isArray, isFunction, isString } from 'lodash-es'; export const kCheckErrorHasMessageMatcher = { equal: 'equal', includes: 'includes', }; const equalityMatcher = (m1, m2) => isString(m2) ? m1 === m2 : m2.test(m1); const includesMatcher = (m1, m2) => isString(m2) ? m1.includes(m2) : m2.test(m1); const noopMatcher = () => true; export function checkErrorHasMessage(error, expectedErrorMessages, matcher = kCheckErrorHasMessageMatcher.includes, shouldMatchAtLeastOne = true) { const errorList = isArray(error) ? error : [error]; const matchedMessages = []; const missingMessages = []; const matcherFn = isFunction(matcher) ? matcher : matcher === 'equal' ? equalityMatcher : matcher === 'includes' ? includesMatcher : noopMatcher; expectedErrorMessages = isArray(expectedErrorMessages) ? expectedErrorMessages : [expectedErrorMessages]; expectedErrorMessages.forEach(expectedMessage => { const matched = errorList.some(error => matcherFn(error === null || error === void 0 ? void 0 : error.message, expectedMessage)); if (matched) { matchedMessages.push(expectedMessage); } else { missingMessages.push(expectedMessage); } }); return { matchedMessages, missingMessages, matches: (shouldMatchAtLeastOne && matchedMessages.length > 0) || missingMessages.length === 0, }; } //# sourceMappingURL=checkErrorHasMessage.js.map