Skip to content

Commit 82c7228

Browse files
cliedemanchristophwitzko
authored andcommitted
refactor: Fix typo and change to table tests
1 parent 0b29bd6 commit 82c7228

File tree

2 files changed

+42
-39
lines changed

2 files changed

+42
-39
lines changed

pkg/semrel/semrel.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ type Repository interface {
100100
Repo() string
101101
}
102102

103-
func CaluclateChange(commits []*Commit, latestRelease *Release) Change {
103+
func CalculateChange(commits []*Commit, latestRelease *Release) Change {
104104
var change Change
105105
for _, commit := range commits {
106106
if latestRelease.SHA == commit.SHA {
@@ -151,7 +151,7 @@ func ApplyChange(version *semver.Version, change Change) *semver.Version {
151151
}
152152

153153
func GetNewVersion(commits []*Commit, latestRelease *Release) *semver.Version {
154-
return ApplyChange(latestRelease.Version, CaluclateChange(commits, latestRelease))
154+
return ApplyChange(latestRelease.Version, CalculateChange(commits, latestRelease))
155155
}
156156

157157
func trimSHA(sha string) string {

pkg/semrel/semrel_test.go

Lines changed: 40 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package semrel
22

33
import (
4+
"fmt"
45
"strings"
56
"testing"
67

@@ -13,11 +14,11 @@ func TestCaluclateChange(t *testing.T) {
1314
{SHA: "b", Change: Change{false, true, false}},
1415
{SHA: "c", Change: Change{false, false, true}},
1516
}
16-
change := CaluclateChange(commits, &Release{})
17+
change := CalculateChange(commits, &Release{})
1718
if !change.Major || !change.Minor || !change.Patch {
1819
t.Fail()
1920
}
20-
change = CaluclateChange(commits, &Release{SHA: "a"})
21+
change = CalculateChange(commits, &Release{SHA: "a"})
2122
if change.Major || change.Minor || change.Patch {
2223
t.Fail()
2324
}
@@ -29,42 +30,44 @@ func TestCaluclateChange(t *testing.T) {
2930
}
3031

3132
func TestApplyChange(t *testing.T) {
32-
version, _ := semver.NewVersion("1.0.0")
33-
newVersion := ApplyChange(version, Change{false, false, false})
34-
if newVersion != nil {
35-
t.Fail()
36-
}
37-
newVersion = ApplyChange(version, Change{false, false, true})
38-
if newVersion.String() != "1.0.1" {
39-
t.Fail()
40-
}
41-
newVersion = ApplyChange(version, Change{false, true, true})
42-
if newVersion.String() != "1.1.0" {
43-
t.Fail()
44-
}
45-
newVersion = ApplyChange(version, Change{true, true, true})
46-
if newVersion.String() != "2.0.0" {
47-
t.Fail()
48-
}
49-
version, _ = semver.NewVersion("0.1.0")
50-
newVersion = ApplyChange(version, Change{})
51-
if newVersion.String() != "1.0.0" {
52-
t.Fail()
53-
}
54-
version, _ = semver.NewVersion("2.0.0-beta")
55-
newVersion = ApplyChange(version, Change{true, true, true})
56-
if newVersion.String() != "2.0.0-beta.1" {
57-
t.Fail()
58-
}
59-
version, _ = semver.NewVersion("2.0.0-beta.2")
60-
newVersion = ApplyChange(version, Change{true, true, true})
61-
if newVersion.String() != "2.0.0-beta.3" {
62-
t.Fail()
33+
NoChange := Change{false, false, false}
34+
PatchChange := Change{false, false, true}
35+
MinorChange := Change{false, true, true}
36+
MajorChange := Change{true, true, true}
37+
38+
testCases := []struct {
39+
currentVersion string
40+
change Change
41+
expectedVersion string
42+
}{
43+
{"1.0.0", NoChange, ""},
44+
{"1.0.0", PatchChange, "1.0.1"},
45+
{"1.0.0", MinorChange, "1.1.0"},
46+
{"1.0.0", MajorChange, "2.0.0"},
47+
{"0.1.0", NoChange, "1.0.0"},
48+
49+
{"2.0.0-beta", MajorChange, "2.0.0-beta.1"},
50+
{"2.0.0-beta.2", MajorChange, "2.0.0-beta.3"},
51+
{"2.0.0-beta.1.1", MajorChange, "2.0.0-beta.2"},
6352
}
64-
version, _ = semver.NewVersion("2.0.0-beta.1.1")
65-
newVersion = ApplyChange(version, Change{true, true, true})
66-
if newVersion.String() != "2.0.0-beta.2" {
67-
t.Fail()
53+
54+
for _, tc := range testCases {
55+
t.Run(fmt.Sprintf("Version: %s, Change: %v, Expected: %s", tc.currentVersion, tc.change, tc.expectedVersion), func(t *testing.T) {
56+
current, err := semver.NewVersion(tc.currentVersion)
57+
58+
if err != nil {
59+
t.Errorf("failed to create version: %v", err)
60+
}
61+
62+
actual := ApplyChange(current, tc.change)
63+
64+
// Handle no new version case
65+
if actual != nil && tc.expectedVersion == "" {
66+
if actual.String() != tc.expectedVersion {
67+
t.Errorf("expected: %s, got: %s", tc.expectedVersion, actual)
68+
}
69+
}
70+
})
6871
}
6972
}
7073

0 commit comments

Comments
 (0)