(summary)
| 57 | } |
| 58 | |
| 59 | function renderCategoryDeductions(summary) { |
| 60 | if (!summary.categoryDeductions || summary.categoryDeductions.length === 0) { |
| 61 | return "<p>No category deductions recorded.</p>"; |
| 62 | } |
| 63 | |
| 64 | return `<ul>${summary.categoryDeductions |
| 65 | .map( |
| 66 | (entry) => |
| 67 | `<li><strong>${escapeHtml(entry.category)}</strong>: -${escapeHtml(entry.totalPenalty)} points across ${escapeHtml(entry.checks)} check${entry.checks === 1 ? "" : "s"}</li>`, |
| 68 | ) |
| 69 | .join("")}</ul>`; |
| 70 | } |
| 71 | |
| 72 | function renderObservedUsage(observedUsage) { |
| 73 | if (!observedUsage) { |
no test coverage detected