flow-coverage-report
Version:
Generate an HTML report of the flow coverage data
95 lines (82 loc) • 3.62 kB
JavaScript
'use strict';
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _react = _interopRequireDefault(require("react"));
var LinkToSourceFileReport = function LinkToSourceFileReport(props) {
var filename = props.targetFilename;
var href = "sourcefiles/".concat(filename, ".html");
return /*#__PURE__*/_react["default"].createElement("a", {
href: href
}, filename);
};
var FlowCoverageFileTableRow = function FlowCoverageFileTableRow(props) {
/* eslint-disable camelcase */
var filename = props.filename,
annotation = props.annotation,
covered_count = props.covered_count,
uncovered_count = props.uncovered_count,
percent = props.percent,
isError = props.isError,
isFlow = props.isFlow,
disableLink = props.disableLink,
threshold = props.threshold;
var aboveThreshold = percent >= threshold;
var className = !isError && isFlow && aboveThreshold ? 'positive' : 'negative';
var errorPopup;
if (isError) {
className = 'error';
var errorType;
var errorContent;
if (props.flowCoverageError) {
errorType = 'flow coverage';
errorContent = /*#__PURE__*/_react["default"].createElement("pre", null, props.flowCoverageError);
}
if (props.flowCoverageParsingError) {
errorType = 'JSON Parsing';
errorContent = /*#__PURE__*/_react["default"].createElement("pre", null, props.flowCoverageParsingError);
}
if (props.flowCoverageException) {
errorType = 'Flow command unexpected error';
errorContent = /*#__PURE__*/_react["default"].createElement("pre", null, props.flowCoverageException);
}
if (props.flowCoverageStderr) {
errorType = 'Flow command stderr';
errorContent = /*#__PURE__*/_react["default"].createElement("pre", null, props.flowCoverageStderr);
}
errorPopup = /*#__PURE__*/_react["default"].createElement("div", {
className: "ui popup"
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "header"
}, "Flow Error: ", errorType), /*#__PURE__*/_react["default"].createElement("div", null, errorContent));
}
return /*#__PURE__*/_react["default"].createElement("tr", {
key: filename,
className: className
}, /*#__PURE__*/_react["default"].createElement("td", {
key: "filename",
className: disableLink ? '' : 'selectable'
}, disableLink ? filename : /*#__PURE__*/_react["default"].createElement(LinkToSourceFileReport, {
targetFilename: filename
})), /*#__PURE__*/_react["default"].createElement("td", {
key: "annotation"
}, " @", annotation, " "), /*#__PURE__*/_react["default"].createElement("td", {
key: "percent",
className: isError ? 'error' : ''
}, isError ? /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement("i", {
className: "attention icon",
"data-position": "bottom right"
}), "Error", errorPopup) : /*#__PURE__*/_react["default"].createElement("span", null, percent, " %")), /*#__PURE__*/_react["default"].createElement("td", {
key: "total"
}, " ", covered_count + uncovered_count, " "), /*#__PURE__*/_react["default"].createElement("td", {
key: "covered"
}, " ", covered_count, " "), /*#__PURE__*/_react["default"].createElement("td", {
key: "uncovered"
}, " ", uncovered_count, " "));
/* eslint-enable camelcase */
};
var _default = FlowCoverageFileTableRow;
exports["default"] = _default;
//# sourceMappingURL=coverage-file-table-row.js.map