UNPKG

barecheck

Version:
41 lines 2.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getCoverageReportBody = void 0; const buildTableRow = ({ file, lines, url }) => { const getChangesLink = (lineLines) => `${url}${lineLines}`; // TODO: find a way to get diff patch // `https://github.com/${owner}/${repo}/pull/${pullRequestNumber}/files#diff-${sha}${lines}`; const buildArrayLink = (lineLines) => { const href = getChangesLink(`#L${lineLines[0]}-L${lineLines[1]}`); const text = lineLines.join('-'); return `<a href="${href}">${text}</a>`; }; const buildLink = (line) => `<a href="${getChangesLink(`#L${line}`)}">${line}</a>`; const buildUncoveredLines = (line) => Array.isArray(line) ? buildArrayLink(line) : buildLink(line); const formattedlines = lines.map(buildUncoveredLines).join(', '); const formattedFile = `<a href="${getChangesLink('')}">${file}</a>`; return `<tr><td>${formattedFile}</td><td>${formattedlines}</td></tr>`; }; const buildDetailsBlock = (changedFiles) => { if (changedFiles.length === 0) return '✅ All code changes are covered'; const summary = '<summary>Uncovered files and lines</summary>'; const tableHeader = '<tr><th>File</th><th>Lines</th></tr>'; const tableBody = changedFiles.map(buildTableRow).join(''); const table = `<table><tbody>${tableHeader}${tableBody}</tbody></table>`; return `<details>${summary}${table}</details>`; }; const getCoverageReportBody = ({ changedFiles, title, coverageDiff, totalCoverage }) => { const coverageDiffOutput = coverageDiff < 0 ? '▾' : '▴'; const trendArrow = coverageDiff === 0 ? '' : coverageDiffOutput; const header = `${title}`; const detailsWithChangedFiles = buildDetailsBlock(changedFiles); const descTotal = `Total: <b>${totalCoverage}%</b>`; const descCoverageDiff = `Your code coverage diff: <b>${coverageDiff}% ${trendArrow}</b>`; const description = `${descTotal}\n\n${descCoverageDiff}`; const body = `<h3>${header}</h3>${description}\n\n${detailsWithChangedFiles}`; return body; }; exports.getCoverageReportBody = getCoverageReportBody; exports.default = exports.getCoverageReportBody; //# sourceMappingURL=coverage.js.map