Skip to content

Commit cbc7d69

Browse files
authored
unit test improvement (#41)
1 parent 0a253e5 commit cbc7d69

File tree

2 files changed

+30
-24
lines changed

2 files changed

+30
-24
lines changed

pkg/testcoverage/badge_test.go

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -35,21 +35,36 @@ func Test_GenerateAndSaveBadge_SaveToFile(t *testing.T) {
3535
return
3636
}
3737

38-
// should save badge to file
39-
testFile := t.TempDir() + "/badge.svg"
38+
t.Run("invalid file", func(t *testing.T) {
39+
t.Parallel()
4040

41-
buf := &bytes.Buffer{}
42-
err := GenerateAndSaveBadge(buf, Config{
43-
Badge: Badge{
44-
FileName: testFile,
45-
},
46-
}, 100)
47-
assert.NoError(t, err)
48-
assert.NotEmpty(t, buf.Bytes())
41+
err := GenerateAndSaveBadge(nil, Config{
42+
Badge: Badge{
43+
FileName: t.TempDir(), // should not be able to write to directory
44+
},
45+
}, 100)
46+
assert.Error(t, err)
47+
})
4948

50-
contentBytes, err := os.ReadFile(testFile)
51-
assert.NoError(t, err)
52-
assert.NotEmpty(t, contentBytes)
49+
t.Run("success", func(t *testing.T) {
50+
t.Parallel()
51+
52+
// should save badge to file
53+
testFile := t.TempDir() + "/badge.svg"
54+
55+
buf := &bytes.Buffer{}
56+
err := GenerateAndSaveBadge(buf, Config{
57+
Badge: Badge{
58+
FileName: testFile,
59+
},
60+
}, 100)
61+
assert.NoError(t, err)
62+
assert.Contains(t, buf.String(), "Badge saved to file")
63+
64+
contentBytes, err := os.ReadFile(testFile)
65+
assert.NoError(t, err)
66+
assert.NotEmpty(t, contentBytes)
67+
})
5368
}
5469

5570
func Test_GenerateAndSaveBadge_SaveToCDN_NoAction(t *testing.T) {

pkg/testcoverage/utils.go

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,14 @@ import (
77
"strings"
88
)
99

10-
//nolint:gochecknoglobals // relax
11-
var separatorToReplace = regexp.QuoteMeta(string(filepath.Separator))
10+
const separatorToReplace = string(filepath.Separator)
1211

1312
func normalizePathInRegex(path string) string {
1413
if runtime.GOOS != "windows" {
1514
return path
1615
}
1716

18-
clean := regexp.MustCompile(`\\+/`).
19-
ReplaceAllStringFunc(path, func(s string) string {
20-
if strings.Count(s, "\\")%2 == 0 {
21-
return s
22-
}
23-
return s[1:]
24-
})
25-
26-
return strings.ReplaceAll(clean, "/", separatorToReplace)
17+
return strings.ReplaceAll(path, "/", separatorToReplace)
2718
}
2819

2920
type regRule struct {

0 commit comments

Comments
 (0)