aboutsummaryrefslogtreecommitdiff
path: root/node_modules/istanbul-reports/lib/html-spa/src/summaryHeader.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/istanbul-reports/lib/html-spa/src/summaryHeader.js')
-rw-r--r--node_modules/istanbul-reports/lib/html-spa/src/summaryHeader.js63
1 files changed, 63 insertions, 0 deletions
diff --git a/node_modules/istanbul-reports/lib/html-spa/src/summaryHeader.js b/node_modules/istanbul-reports/lib/html-spa/src/summaryHeader.js
new file mode 100644
index 0000000..3bdd8ff
--- /dev/null
+++ b/node_modules/istanbul-reports/lib/html-spa/src/summaryHeader.js
@@ -0,0 +1,63 @@
+const React = require('react');
+
+function Ignores({ metrics, metricsToShow }) {
+ const metricKeys = Object.keys(metricsToShow);
+ const result = [];
+
+ for (let i = 0; i < metricKeys.length; i++) {
+ const metricKey = metricKeys[i];
+ if (metricsToShow[metricKey]) {
+ const skipped = metrics[metricKey].skipped;
+ if (skipped > 0) {
+ result.push(
+ `${skipped} ${metricKey}${
+ skipped === 1 ? '' : metricKey === 'branch' ? 'es' : 's'
+ }`
+ );
+ }
+ }
+ }
+
+ if (result.length === 0) {
+ return false;
+ }
+
+ return (
+ <div className="toolbar__item">
+ <span className="strong">{result.join(', ')}</span>
+ <span className="quiet">Ignored</span>
+ </div>
+ );
+}
+
+function StatusMetric({ data, name }) {
+ return (
+ <div className="toolbar__item">
+ <span className="strong">{data.pct}%</span>{' '}
+ <span className="quiet">{name}</span>{' '}
+ <span className={'fraction ' + data.classForPercent}>
+ {data.covered}/{data.total}
+ </span>
+ </div>
+ );
+}
+
+module.exports = function SummaryHeader({ metrics, metricsToShow }) {
+ return (
+ <div className="toolbar">
+ {metricsToShow.statements && (
+ <StatusMetric data={metrics.statements} name="Statements" />
+ )}
+ {metricsToShow.branches && (
+ <StatusMetric data={metrics.branches} name="Branches" />
+ )}
+ {metricsToShow.functions && (
+ <StatusMetric data={metrics.functions} name="Functions" />
+ )}
+ {metricsToShow.lines && (
+ <StatusMetric data={metrics.lines} name="Lines" />
+ )}
+ <Ignores metrics={metrics} metricsToShow={metricsToShow} />
+ </div>
+ );
+};