Skip to content

Commit ebad849

Browse files
committed
more tests
1 parent 9324521 commit ebad849

File tree

4 files changed

+49
-9
lines changed

4 files changed

+49
-9
lines changed

pkg/testcoverage/coverage/types.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,11 @@ func (s Stats) CoveredPercentage() int {
2727
}
2828

2929
func (s Stats) CoveredPercentageF() float64 {
30-
return coveredPercentageF(s.Total, s.Covered)
30+
return coveredPercentageF(s.Total, s.Covered, true)
31+
}
32+
33+
func (s Stats) CoveredPercentageFNR() float64 {
34+
return coveredPercentageF(s.Total, s.Covered, false)
3135
}
3236

3337
//nolint:mnd // relax
@@ -53,11 +57,11 @@ func StatsSearchMap(stats []Stats) map[string]Stats {
5357
}
5458

5559
func CoveredPercentage(total, covered int64) int {
56-
return int(coveredPercentageF(total, covered))
60+
return int(coveredPercentageF(total, covered, true))
5761
}
5862

5963
//nolint:mnd // relax
60-
func coveredPercentageF(total, covered int64) float64 {
64+
func coveredPercentageF(total, covered int64, round bool) float64 {
6165
if total == 0 {
6266
return 0
6367
}
@@ -68,6 +72,10 @@ func coveredPercentageF(total, covered int64) float64 {
6872

6973
p := float64(covered*100) / float64(total)
7074

75+
if !round {
76+
return p
77+
}
78+
7179
// round to %.1f
7280
return float64(int(math.Round(p*10))) / 10
7381
}

pkg/testcoverage/helpers_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ func mergeStats(a, b []coverage.Stats) []coverage.Stats {
2727
return r
2828
}
2929

30+
func copyStats(s []coverage.Stats) []coverage.Stats {
31+
return mergeStats(make([]coverage.Stats, 0), s)
32+
}
33+
3034
func randStats(localPrefix string, minc, maxc int) []coverage.Stats {
3135
const count = 100
3236

pkg/testcoverage/report_test.go

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ func Test_ReportForHumanDiff(t *testing.T) {
111111
t.Parallel()
112112

113113
stats := randStats(prefix, 10, 100)
114-
base := mergeStats(make([]coverage.Stats, 0), stats)
114+
base := copyStats(stats)
115115

116116
stats = append(stats, coverage.Stats{Name: "foo", Total: 9, Covered: 8})
117117
stats = append(stats, coverage.Stats{Name: "foo-new", Total: 9, Covered: 8})
@@ -124,16 +124,44 @@ func Test_ReportForHumanDiff(t *testing.T) {
124124
ReportForHuman(buf, result)
125125

126126
assertDiffChange(t, buf.String(), 2)
127+
assert.Contains(t, buf.String(), "foo\t\t 1\t\t88.9% (8/9)\t\t100% (10/10)")
128+
assert.Contains(t, buf.String(), "foo-new\t 1\t\t88.9% (8/9)\t")
127129
})
128130

129-
t.Run("diff - threshold failed", func(t *testing.T) {
131+
t.Run("diff - threshold failed", func(t *testing.T) { //nolit:dupl // relax
130132
t.Parallel()
131-
// add test
133+
134+
base := []coverage.Stats{{Name: "foo", Total: 10, Covered: 1}}
135+
stats := []coverage.Stats{{Name: "foo", Total: 10, Covered: 8}}
136+
137+
buf := &bytes.Buffer{}
138+
cfg := Config{
139+
Diff: Diff{Threshold: ptr(999.0)},
140+
}
141+
result := Analyze(cfg, stats, base)
142+
ReportForHuman(buf, result)
143+
144+
assertDiffThreshold(t, buf.String(), *cfg.Diff.Threshold, false)
145+
assertDiffPercentage(t, buf.String(), 70)
146+
assertDiffChange(t, buf.String(), 2)
132147
})
133148

134149
t.Run("diff - threshold pass", func(t *testing.T) {
135150
t.Parallel()
136-
// add test
151+
152+
base := []coverage.Stats{{Name: "foo", Total: 10, Covered: 1}}
153+
stats := []coverage.Stats{{Name: "foo", Total: 10, Covered: 8}}
154+
155+
buf := &bytes.Buffer{}
156+
cfg := Config{
157+
Diff: Diff{Threshold: ptr(70.0)},
158+
}
159+
result := Analyze(cfg, stats, base)
160+
ReportForHuman(buf, result)
161+
162+
assertDiffThreshold(t, buf.String(), *cfg.Diff.Threshold, true)
163+
assertDiffPercentage(t, buf.String(), 70)
164+
assertDiffChange(t, buf.String(), 2)
137165
})
138166
}
139167

pkg/testcoverage/types.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -133,8 +133,8 @@ func TotalPercentageDiff(current, base []coverage.Stats) float64 {
133133
curretStats := coverage.StatsCalcTotal(current)
134134
baseStats := coverage.StatsCalcTotal(base)
135135

136-
cp := curretStats.CoveredPercentageF()
137-
bp := baseStats.CoveredPercentageF()
136+
cp := curretStats.CoveredPercentageFNR()
137+
bp := baseStats.CoveredPercentageFNR()
138138

139139
return cp - bp
140140
}

0 commit comments

Comments
 (0)