flow-coverage-report
Version:
Generate an HTML report of the flow coverage data
98 lines (79 loc) • 3.9 kB
JavaScript
'use strict';
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _react = _interopRequireDefault(require("react"));
var _footer = _interopRequireDefault(require("./footer"));
var _coverageSummaryTable = _interopRequireDefault(require("./coverage-summary-table"));
var _coverageFileTableHead = _interopRequireDefault(require("./coverage-file-table-head"));
var _coverageFileTableRow = _interopRequireDefault(require("./coverage-file-table-row"));
var _coverageMeterBar = _interopRequireDefault(require("./coverage-meter-bar"));
var HTMLReportBodySummary = function HTMLReportBodySummary(props) {
var summary = props.coverageSummaryData;
if (!summary) {
throw new Error('Missing coverageSummaryData from props');
}
var filenames = Object.keys(summary.files).sort();
var percent = summary.percent;
var filesSummaryTableProps = {
id: 'files',
className: 'ui small celled table sortable'
};
var filesSummaryTable = /*#__PURE__*/_react["default"].createElement("table", filesSummaryTableProps, /*#__PURE__*/_react["default"].createElement(_coverageFileTableHead["default"], null), /*#__PURE__*/_react["default"].createElement("tbody", null, filenames.map(function (filename) {
var fileSummary = summary.files[filename];
var key = filename;
var fileRowProps = {
filename: filename,
isError: fileSummary.isError,
isFlow: fileSummary.isFlow,
flowCoverageParsingError: fileSummary.flowCoverageParsingError,
flowCoverageError: fileSummary.flowCoverageError,
flowCoverageException: fileSummary.flowCoverageException,
flowCoverageStderr: fileSummary.flowCoverageStderr,
disableLink: false,
threshold: summary.threshold,
annotation: fileSummary.annotation,
percent: fileSummary.percent,
/* eslint-disable camelcase */
covered_count: fileSummary.expressions.covered_count,
uncovered_count: fileSummary.expressions.uncovered_count
/* eslint-enable camelcase */
};
return /*#__PURE__*/_react["default"].createElement(_coverageFileTableRow["default"], (0, _extends2["default"])({
key: key
}, fileRowProps));
})));
var meterBar;
if (props.htmlTemplateOptions && props.htmlTemplateOptions.showMeterBar) {
meterBar = /*#__PURE__*/_react["default"].createElement(_coverageMeterBar["default"], {
percent: percent,
threshold: summary.threshold
});
}
return /*#__PURE__*/_react["default"].createElement("body", null, /*#__PURE__*/_react["default"].createElement("div", {
className: "ui grid container"
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "row"
}, /*#__PURE__*/_react["default"].createElement("h2", null, "Flow Coverage Report")), /*#__PURE__*/_react["default"].createElement("div", {
className: "row"
}, /*#__PURE__*/_react["default"].createElement("h4", {
className: "ui header"
}, "Summary"), /*#__PURE__*/_react["default"].createElement(_coverageSummaryTable["default"], {
assets: props.assets,
coverageGeneratedAt: props.coverageGeneratedAt,
htmlTemplateOptions: props.htmlTemplateOptions,
coverageSummaryData: props.coverageSummaryData
})), meterBar, /*#__PURE__*/_react["default"].createElement("div", {
className: "row"
}, /*#__PURE__*/_react["default"].createElement("h4", {
className: "ui header"
}, "Files"), filesSummaryTable), /*#__PURE__*/_react["default"].createElement("div", {
className: "row centered"
}, /*#__PURE__*/_react["default"].createElement(_footer["default"], props))));
};
var _default = HTMLReportBodySummary;
exports["default"] = _default;
//# sourceMappingURL=body-coverage-summary.js.map