@testing-library/react-native
Version:
Simple and complete React Native testing utilities that encourage good testing practices.
56 lines (54 loc) • 1.95 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.ErrorWithStack = void 0;
exports.copyStackTrace = copyStackTrace;
exports.prepareErrorMessage = exports.createQueryByError = void 0;
var _prettyFormat = _interopRequireDefault(require("pretty-format"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
class ErrorWithStack extends Error {
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
constructor(message, callsite) {
super(message);
if (Error.captureStackTrace) {
Error.captureStackTrace(this, callsite);
}
}
}
exports.ErrorWithStack = ErrorWithStack;
const prepareErrorMessage = (error, name, value) => {
let errorMessage;
if (error instanceof Error) {
// Strip info about custom predicate
errorMessage = error.message.replace(/ matching custom predicate[^]*/gm, '');
} else if (error && typeof error === 'object') {
errorMessage = error.toString();
} else {
errorMessage = 'Caught unknown error';
}
if (name && value) {
errorMessage += ` with ${name} ${(0, _prettyFormat.default)(value, {
min: true
})}`;
}
return errorMessage;
};
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
exports.prepareErrorMessage = prepareErrorMessage;
const createQueryByError = (error, callsite) => {
if (error instanceof Error) {
if (error.message.includes('No instances found')) {
return null;
}
throw new ErrorWithStack(error.message, callsite);
}
throw new ErrorWithStack(`Query: caught unknown error type: ${typeof error}, value: ${error}`, callsite);
};
exports.createQueryByError = createQueryByError;
function copyStackTrace(target, stackTraceSource) {
if (target instanceof Error && stackTraceSource.stack) {
target.stack = stackTraceSource.stack.replace(stackTraceSource.message, target.message);
}
}
//# sourceMappingURL=errors.js.map