UNPKG

testcafe-reporter-cucumber-json

Version:
187 lines 8.74 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __spreadArrays = (this && this.__spreadArrays) || function () { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.extendedReporterPlugin = void 0; var reporter_helpers_1 = require("./reporter-helpers"); var stack_frames_parser_1 = require("./stack-frames-parser"); var remove_common_first_lines_1 = require("./remove-common-first-lines"); var chalk = __importStar(require("chalk")); exports.extendedReporterPlugin = { reportTaskStart: function (startTime, userAgents, testCount, report) { if (report) { report.initializeWith(startTime, userAgents, testCount); } }, reportFixtureStart: function (name, path, report) { report.createFeature(name, path); }, reportTestDone: function (name, testRunInfo, report) { var _this = this; report.createScenario(name, testRunInfo); var browsers = new Set(testRunInfo.browsers.map(function (browser) { return browser.prettyUserAgent; })); Array.from(browsers).forEach(function (browser) { var browserInfo = testRunInfo.browsers.find(function (browserInfo) { return browserInfo.prettyUserAgent === browser; }); if (!browserInfo) { return; } report.withBrowserInfo(browser, browserInfo); var testRunId = browserInfo.testRunId; var screenshots = testRunInfo.screenshots .filter(function (s) { return s.testRunId === testRunId; }) .map(function (s) { return s.screenshotPath; }); report.withBrowserScreenshots(screenshots, browser); var callsiteErrors = (testRunInfo.errs || []).filter(function (err) { return err.testRunId === testRunId; }); if (Array.isArray(callsiteErrors) && callsiteErrors.length === 0) { return; } var formattedErrorMessage = _this.renderErrors(callsiteErrors); report.withBrowserError(formattedErrorMessage, browser); }); }, reportTaskDone: function (endTime, passed, warnings, report) { if (report) { report.finalizeWith(endTime, passed, warnings); report.writeJsonFiles(); } this.write(''); }, chalk: chalk.default, formatError: function (err, prefix) { return reporter_helpers_1.nativeFormatError(err, prefix); }, newline: function () { return reporter_helpers_1.nativeNewLine(); }, setIndent: function (val) { return reporter_helpers_1.nativeSetIndent(val); }, write: function (text) { return reporter_helpers_1.nativeWrite(text); }, renderErrors: function (errs) { var _this = this; if (!Array.isArray(errs)) { reportUnexpectedErrObject(errs); return 'Error: reporter cucumber-json has detected an unexpected error object. Please see details in the console logs'; } var originalStackTraceLimit = Error.stackTraceLimit; Error.stackTraceLimit = 1000; var lines = []; errs.map(function (err, idx) { var prefix = idx + 1 + ") "; if (err && typeof err.callsite === 'string') { reportUnexpectedErrObject(err); lines.push(renderNativeError(function () { return _this.formatError(err, prefix); })); return; } if (!err.callsite) { reportUnexpectedErrObject(err); lines.push(renderNativeError(function () { return _this.formatError(err, prefix); })); return; } stack_frames_parser_1.filterStackFramesIn(err.callsite); var originalStackFrames = __spreadArrays(err.callsite.stackFrames); var files = stack_frames_parser_1.getAllFilesIn(err.callsite); files.map(function (filename, index) { err.callsite.stackFrames = stack_frames_parser_1.stackFramesOf(filename).in(originalStackFrames); err.callsite.filename = filename; err.callsite.lineNum = err.callsite.stackFrames[0].getLineNumber() - 1; var stackTrace = _this.formatError(err, prefix); if (index === 0) { lines.push(stackTrace); return; } var additionalStackTrace = remove_common_first_lines_1.removeCommonFirstLines(lines[0], stackTrace); lines.push(additionalStackTrace); }); }); Error.stackTraceLimit = originalStackTraceLimit; return lines.join('\n'); }, createErrorDecorator: function () { var hasShownError = false; var lineSeparator = '--------------------------------------------\n'; return { a: function (str) { return "\"" + str + "\""; }, 'a screenshot-path': function (str) { return str; }, code: function (str) { return str; }, 'div code-frame': function (str) { return str; }, 'div code-line': function (str) { if (hasShownError) { hasShownError = false; return str + "\n" + lineSeparator; } return str + "\n"; }, 'div code-line-last': function (str) { return str; }, 'div code-line-num': function (str) { return " " + str + " | "; }, 'div code-line-num-base': function (str) { hasShownError = true; return lineSeparator + (" &rarr; " + str + " ") + '| '; }, 'div code-line-src': function (str) { return str; }, 'div message': function (str) { return str; }, 'div screenshot-info': function (str) { return str; }, 'div stack': function (str) { return '\n\n' + str; }, 'div stack-line': function (str) { return str + '\n'; }, 'div stack-line-last': function (str) { return str; }, 'div stack-line-location': function (str) { return " (" + str + ")"; }, 'div stack-line-name': function (str) { return " at " + str; }, 'span subtitle': function (str) { return "- " + str + " -"; }, 'span syntax-comment': function (str) { return str; }, 'span syntax-invalid': function (str) { return str; }, 'span syntax-keyword': function (str) { return str; }, 'span syntax-number': function (str) { return str; }, 'span syntax-punctuator': function (str) { return str; }, 'span syntax-regex': function (str) { return str; }, 'span syntax-string': function (str) { return str; }, 'span user-agent': function (str) { return str; }, strong: function (str) { return str; }, }; }, }; function reportUnexpectedErrObject(err) { if (err && err.isTestCafeError) { return; } console.warn("testcafe-reporter-cucumber-json: cannot render errors because the error object has an unexpected content"); console.warn("testcafe-reporter-cucumber-json: please provide the following log to github.com/hdorgeval/testcafe-reporter-cucumber-json :"); console.warn("testcafe-reporter-cucumber-json :", { err: err }); } function renderNativeError(formatter) { var nativeMessage; try { nativeMessage = formatter(); } catch (error) { nativeMessage = error.message || "" + error; } var formattedErrorMessage = nativeMessage.replace(/>/gi, '&rarr;'); return formattedErrorMessage; } //# sourceMappingURL=reporter.js.map