-
Notifications
You must be signed in to change notification settings - Fork 37
Description
Description
When previous-results are configured (for reports like fail-rate-report, previous-results-report, etc.), the summary report automatically switches from SummaryTable to SummaryDeltaTable, showing ±0 next to every metric that hasn't changed. This is noisy — in most runs the majority of values are unchanged, resulting in ±0 everywhere.
Reproduction
Workflow config (from integration-listener.yml):
- uses: ctrf-io/github-test-reporter@v1.0.27
with:
summary-report: true
test-report: true
fail-rate-report: true
failed-folded-report: true
previous-results-report: true
skipped-report: true
previous-results-max: 10Note: summary-delta-report is not set. The user only asked for summary-report.
Example run: https://github.com/alexshamrai/junit-ctrf-reporter/actions/runs/23387307150
The summary table renders like:
| Tests | Passed | Failed | Skipped | Other | Flaky | Duration |
|---|---|---|---|---|---|---|
| 58 ↑2 | 58 ±0 | 0 ±0 | 0 ±0 | 0 ±0 | 0 ±0 | 11.2s ↓2ms |
5 out of 7 columns show ±0, which adds visual clutter without conveying useful information.
Root cause
In src/github/core.ts, both the default path (line 34-38) and the summary-report path (line 232-240) auto-switch from SummaryTable to SummaryDeltaTable whenever previousResults exist:
if (hasPreviousResults === false) {
addViewToSummary('### Summary', BuiltInReports.SummaryTable, report)
} else {
addViewToSummary('### Summary', BuiltInReports.SummaryDeltaTable, report)
}This was introduced in PR #240. The SummaryDeltaTable template always renders ±0 for zero-change values because there is no {{#if change}} guard — the {{else}} branch unconditionally outputs ±0.
The same pattern also affects fail-rate-table.hbs and flaky-rate-table.hbs.
Expected behavior(from my perspective)
When change is zero, no delta indicator should be shown. Only actual increases (↑) and decreases (↓) should be displayed. The absence of a delta indicator already communicates "no change."
Suggested fix
In the .hbs templates, wrap each delta snippet with {{#if change}} (Handlebars treats 0 as falsy) and remove the {{else}}±0 branch. Affected templates:
src/reports/summary-delta-table.hbssrc/reports/github.hbs(has outer guard already, just remove dead{{else}}±0code)src/reports/fail-rate-table.hbssrc/reports/flaky-rate-table.hbs
@Ma11hewThomas Let's discuss it, if I did not get the feature correct. But for me ±0 looks redundant and only adds a lot of noise to the report