monocart-coverage-reports
Version:
A code coverage tool to generate native V8 reports or Istanbul reports.
84 lines (69 loc) • 1.65 kB
JavaScript
const CG = require('console-grid');
const EC = require('eight-colors');
const Util = require('../utils/util.js');
const nFormatter = (v) => {
if (typeof v === 'number') {
return Util.NF(v);
}
return v;
};
const getSummaryColumns = (color) => {
const columns = [{
id: 'name',
name: 'Name'
}, {
id: 'pct',
name: 'Coverage %',
align: 'right',
formatter: (v, row, column) => {
if (typeof v === 'number') {
return Util.getColorStrByStatus(Util.PSF(v, 100, 2), row.status, color);
}
return v;
}
}, {
id: 'covered',
name: 'Covered',
align: 'right',
formatter: nFormatter
}, {
id: 'uncovered',
name: 'Uncovered',
align: 'right',
formatter: nFormatter
}, {
id: 'total',
name: 'Total',
align: 'right',
formatter: nFormatter
}];
return columns;
};
const consoleSummaryReport = (reportData, reportOptions, options) => {
const csOptions = {
metrics: [],
... reportOptions
};
const {
summary, name, type
} = reportData;
if (name) {
Util.logInfo(EC.cyan(name));
}
const metrics = Util.getMetrics(csOptions.metrics, type);
const rows = metrics.map((k) => {
return {
... summary[k],
name: Util.capitalizeFirstLetter(k)
};
});
const columns = getSummaryColumns('ansicode');
CG({
columns,
rows
});
};
module.exports = {
getSummaryColumns,
consoleSummaryReport
};