flow-coverage-report
Version:
Generate an HTML report of the flow coverage data
159 lines (137 loc) • 6.08 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 _footer = _interopRequireDefault(require("./footer"));
var _coverageFileTableHead = _interopRequireDefault(require("./coverage-file-table-head"));
var _coverageFileTableRow = _interopRequireDefault(require("./coverage-file-table-row"));
var _coverageMeterBar = _interopRequireDefault(require("./coverage-meter-bar"));
var FlowCoverageLocsForm = function FlowCoverageLocsForm(props) {
var uncovered_locs = props.uncovered_locs; // eslint-disable-line camelcase
return /*#__PURE__*/_react["default"].createElement("div", {
className: "ui form"
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "fields"
}, /*#__PURE__*/_react["default"].createElement("div", {
key: "uncovered-locs-dropdown",
className: "sixteen wide inline field"
}, /*#__PURE__*/_react["default"].createElement("select", {
className: "ui search dropdown uncovered-locations"
}, [/*#__PURE__*/_react["default"].createElement("option", {
key: "placeholder",
value: ""
}, "Uncovered Locations")].concat(uncovered_locs.map(function (loc, i) {
// eslint-disable-line camelcase
var text = 'Start: ' + [loc.start.line, loc.start.column].join(',') + ' - ' + 'End: ' + [loc.end.line, loc.end.column].join(',');
var value = loc.start.line;
/* eslint-disable react/no-array-index-key */
return /*#__PURE__*/_react["default"].createElement("option", {
key: i,
value: value
}, text);
/* eslint-enable react/no-array-index-key */
})))), /*#__PURE__*/_react["default"].createElement("div", {
key: "syntax-highlighting-dropdown",
className: "four wide inline field"
}, /*#__PURE__*/_react["default"].createElement("select", {
className: "ui search dropdown syntax-highlighting"
}, /*#__PURE__*/_react["default"].createElement("option", {
key: "es",
value: "es"
}, "ES6/ES7"), /*#__PURE__*/_react["default"].createElement("option", {
key: "js",
value: "js"
}, "JavaScript"), /*#__PURE__*/_react["default"].createElement("option", {
key: "no",
value: "no"
}, "None")))));
};
var HTMLReportBodySourceFile = function HTMLReportBodySourceFile(props) {
var fileName = props.fileName,
fileContent = props.fileContent;
if (!fileName) {
throw new Error('Missing fileName in props');
}
var coverageData = props.coverageData,
coverageSummaryData = props.coverageSummaryData;
if (!coverageData || !coverageSummaryData) {
throw new Error('Missing coverage data props');
}
var percent = coverageData.percent;
var threshold = coverageSummaryData.threshold;
if (!threshold) {
throw new Error('Missing threshold in coverageSummaryData');
}
var _coverageData$express = coverageData.expressions,
covered_count = _coverageData$express.covered_count,
uncovered_count = _coverageData$express.uncovered_count,
uncovered_locs = _coverageData$express.uncovered_locs;
var summaryRelLink = props.summaryRelLink;
var meterBar;
if (props.htmlTemplateOptions && props.htmlTemplateOptions.showMeterBar) {
meterBar = /*#__PURE__*/_react["default"].createElement(_coverageMeterBar["default"], {
percent: percent,
threshold: 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("div", {
className: "twelve wide column"
}, /*#__PURE__*/_react["default"].createElement("h2", {
className: "ui header"
}, /*#__PURE__*/_react["default"].createElement("a", {
href: summaryRelLink,
id: "link-to-summary"
}, "Flow Coverage Report")))), /*#__PURE__*/_react["default"].createElement("div", {
className: "row"
}, /*#__PURE__*/_react["default"].createElement("table", {
className: "ui small celled unstackable table"
}, /*#__PURE__*/_react["default"].createElement(_coverageFileTableHead["default"], null), /*#__PURE__*/_react["default"].createElement("tbody", null, /*#__PURE__*/_react["default"].createElement(_coverageFileTableRow["default"], {
disableLink: true,
filename: fileName,
annotation: coverageData.annotation,
flowCoverageParsingError: coverageData.flowCoverageParsingError,
flowCoverageError: coverageData.flowCoverageError,
flowCoverageException: coverageData.flowCoverageException,
flowCoverageStderr: coverageData.flowCoverageStderr,
isError: coverageData.isError,
isFlow: coverageData.isFlow,
percent: percent,
threshold: threshold,
/* eslint-disable camelcase */
covered_count: covered_count,
uncovered_count: uncovered_count
/* eslint-enable camelcase */
})))), meterBar, /*#__PURE__*/_react["default"].createElement("div", {
className: "row ui one column centered grid"
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "column",
style: {
textAlign: 'left'
}
}, /*#__PURE__*/_react["default"].createElement("div", {
className: "row"
}, /*#__PURE__*/_react["default"].createElement(FlowCoverageLocsForm, {
uncovered_locs: uncovered_locs
})), /*#__PURE__*/_react["default"].createElement("textarea", {
readOnly: true,
id: "file-content",
value: String(fileContent)
}))), /*#__PURE__*/_react["default"].createElement("div", {
className: "row centered"
}, /*#__PURE__*/_react["default"].createElement(_footer["default"], props))), /*#__PURE__*/_react["default"].createElement("pre", {
id: "file-coverage-data",
style: {
display: 'none'
}
}, JSON.stringify(coverageData)));
};
var _default = HTMLReportBodySourceFile;
exports["default"] = _default;
//# sourceMappingURL=body-coverage-sourcefile.js.map