testcafe
Version:
Automated browser testing for the modern web development stack.
33 lines • 5.5 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const types_1 = require("../../types");
const utils_1 = require("../utils");
const templates_1 = __importDefault(require("../templates"));
const utils_2 = require("./utils");
function getTestCafeErrorInCustomScriptError(err, viewportWidth) {
const originErrTemplate = templates_1.default[err.originError.code];
const originErrMessage = '\n' + err.originError.message;
let originCallsiteMarkup = '';
if ((0, utils_2.shouldRenderHtmlWithoutStack)(err)) {
// HACK: we need to get callsite for custom TestCafe script without real file for it.
// We use expression as a file content
originCallsiteMarkup = typeof err.errCallsite === 'string' ? err.errCallsite : (0, utils_2.renderHtmlWithoutStack)(err);
}
const originErrorText = originErrTemplate ? originErrTemplate(err.originError, viewportWidth) : originErrMessage +
'\n';
return (0, utils_1.markup)(err, `
An unhandled error occurred in the custom script:
${originErrorText}${!originCallsiteMarkup ? `\n${(0, utils_1.formatExpressionMessage)(err.expression, err.line, err.column)}` : ''}
`, originCallsiteMarkup);
}
function renderErrorTemplate(err, viewportWidth) {
if (err.code === types_1.TEST_RUN_ERRORS.uncaughtTestCafeErrorInCustomScript)
return getTestCafeErrorInCustomScriptError(err, viewportWidth);
return (0, utils_1.markup)(err, templates_1.default[err.code](err, viewportWidth));
}
exports.default = renderErrorTemplate;
module.exports = exports.default;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZXJyb3JzL3Rlc3QtcnVuL3JlbmRlci1lcnJvci10ZW1wbGF0ZS9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHVDQUE4QztBQUM5QyxvQ0FBMkQ7QUFDM0QsNkRBQXFDO0FBQ3JDLG1DQUErRTtBQUcvRSxTQUFTLG1DQUFtQyxDQUFFLEdBQUcsRUFBRSxhQUFhO0lBQzVELE1BQU0saUJBQWlCLEdBQUksbUJBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNELE1BQU0sZ0JBQWdCLEdBQUssSUFBSSxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO0lBQzFELElBQUksb0JBQW9CLEdBQUcsRUFBRSxDQUFDO0lBRTlCLElBQUksSUFBQSxvQ0FBNEIsRUFBQyxHQUFHLENBQUMsRUFBRTtRQUNuQyxxRkFBcUY7UUFDckYsc0NBQXNDO1FBQ3RDLG9CQUFvQixHQUFHLE9BQU8sR0FBRyxDQUFDLFdBQVcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUEsOEJBQXNCLEVBQUMsR0FBRyxDQUFDLENBQUM7S0FDOUc7SUFFRCxNQUFNLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCO1FBQ2hCLElBQUksQ0FBQztJQUVyRyxPQUFPLElBQUEsY0FBTSxFQUFDLEdBQUcsRUFBRTs7VUFFYixlQUFlLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFBLCtCQUF1QixFQUFDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRTtLQUN4SCxFQUFFLG9CQUFvQixDQUFDLENBQUM7QUFDN0IsQ0FBQztBQUVELFNBQXdCLG1CQUFtQixDQUFFLEdBQUcsRUFBRSxhQUFhO0lBQzNELElBQUksR0FBRyxDQUFDLElBQUksS0FBSyx1QkFBZSxDQUFDLG1DQUFtQztRQUNoRSxPQUFPLG1DQUFtQyxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUVuRSxPQUFPLElBQUEsY0FBTSxFQUFDLEdBQUcsRUFBRSxtQkFBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBTEQsc0NBS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBURVNUX1JVTl9FUlJPUlMgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBtYXJrdXAsIGZvcm1hdEV4cHJlc3Npb25NZXNzYWdlIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IFRFTVBMQVRFUyBmcm9tICcuLi90ZW1wbGF0ZXMnO1xuaW1wb3J0IHsgcmVuZGVySHRtbFdpdGhvdXRTdGFjaywgc2hvdWxkUmVuZGVySHRtbFdpdGhvdXRTdGFjayB9IGZyb20gJy4vdXRpbHMnO1xuXG5cbmZ1bmN0aW9uIGdldFRlc3RDYWZlRXJyb3JJbkN1c3RvbVNjcmlwdEVycm9yIChlcnIsIHZpZXdwb3J0V2lkdGgpIHtcbiAgICBjb25zdCBvcmlnaW5FcnJUZW1wbGF0ZSAgPSBURU1QTEFURVNbZXJyLm9yaWdpbkVycm9yLmNvZGVdO1xuICAgIGNvbnN0IG9yaWdpbkVyck1lc3NhZ2UgICA9ICdcXG4nICsgZXJyLm9yaWdpbkVycm9yLm1lc3NhZ2U7XG4gICAgbGV0IG9yaWdpbkNhbGxzaXRlTWFya3VwID0gJyc7XG5cbiAgICBpZiAoc2hvdWxkUmVuZGVySHRtbFdpdGhvdXRTdGFjayhlcnIpKSB7XG4gICAgICAgIC8vIEhBQ0s6IHdlIG5lZWQgdG8gZ2V0IGNhbGxzaXRlIGZvciBjdXN0b20gVGVzdENhZmUgc2NyaXB0IHdpdGhvdXQgcmVhbCBmaWxlIGZvciBpdC5cbiAgICAgICAgLy8gV2UgdXNlIGV4cHJlc3Npb24gYXMgYSBmaWxlIGNvbnRlbnRcbiAgICAgICAgb3JpZ2luQ2FsbHNpdGVNYXJrdXAgPSB0eXBlb2YgZXJyLmVyckNhbGxzaXRlID09PSAnc3RyaW5nJyA/IGVyci5lcnJDYWxsc2l0ZSA6IHJlbmRlckh0bWxXaXRob3V0U3RhY2soZXJyKTtcbiAgICB9XG5cbiAgICBjb25zdCBvcmlnaW5FcnJvclRleHQgPSBvcmlnaW5FcnJUZW1wbGF0ZSA/IG9yaWdpbkVyclRlbXBsYXRlKGVyci5vcmlnaW5FcnJvciwgdmlld3BvcnRXaWR0aCkgOiBvcmlnaW5FcnJNZXNzYWdlICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnXFxuJztcblxuICAgIHJldHVybiBtYXJrdXAoZXJyLCBgXG4gICAgICAgIEFuIHVuaGFuZGxlZCBlcnJvciBvY2N1cnJlZCBpbiB0aGUgY3VzdG9tIHNjcmlwdDpcbiAgICAgICAgJHtvcmlnaW5FcnJvclRleHR9JHshb3JpZ2luQ2FsbHNpdGVNYXJrdXAgPyBgXFxuJHtmb3JtYXRFeHByZXNzaW9uTWVzc2FnZShlcnIuZXhwcmVzc2lvbiwgZXJyLmxpbmUsIGVyci5jb2x1bW4pfWAgOiAnJ31cbiAgICBgLCBvcmlnaW5DYWxsc2l0ZU1hcmt1cCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJlbmRlckVycm9yVGVtcGxhdGUgKGVyciwgdmlld3BvcnRXaWR0aCkge1xuICAgIGlmIChlcnIuY29kZSA9PT0gVEVTVF9SVU5fRVJST1JTLnVuY2F1Z2h0VGVzdENhZmVFcnJvckluQ3VzdG9tU2NyaXB0KVxuICAgICAgICByZXR1cm4gZ2V0VGVzdENhZmVFcnJvckluQ3VzdG9tU2NyaXB0RXJyb3IoZXJyLCB2aWV3cG9ydFdpZHRoKTtcblxuICAgIHJldHVybiBtYXJrdXAoZXJyLCBURU1QTEFURVNbZXJyLmNvZGVdKGVyciwgdmlld3BvcnRXaWR0aCkpO1xufVxuIl19