Skip to content

Commit 3677f12

Browse files
committed
fix testability
1 parent 24a5b54 commit 3677f12

File tree

2 files changed

+18
-9
lines changed

2 files changed

+18
-9
lines changed

main.go

+11-3
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,23 @@ func run(w io.Writer) error {
4848
if len(tags) == 0 {
4949
return errors.New("existing tag not found")
5050
}
51-
latest, err := semver.NewVersion(latestSemVer(tags))
51+
next, err := nextTag(tags, bumpLevel(flag.Args()))
5252
if err != nil {
5353
return err
5454
}
55-
next := nextSemVer(latest, bumpLevel(flag.Args()))
56-
fmt.Fprintln(w, next.Original())
55+
fmt.Fprintln(w, next)
5756
return nil
5857
}
5958

59+
func nextTag(tags []string, level Level) (string, error) {
60+
latest, err := semver.NewVersion(latestSemVer(tags))
61+
if err != nil {
62+
return "", err
63+
}
64+
next := nextSemVer(latest, level)
65+
return next.Original(), nil
66+
}
67+
6068
func tags(ctx context.Context) ([]string, error) {
6169
cmd := exec.CommandContext(ctx, "git", "tag")
6270
b, err := cmd.CombinedOutput()

main_test.go

+7-6
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
package main
22

33
import (
4-
"bytes"
54
"testing"
65
)
76

8-
func TestRun(t *testing.T) {
9-
stdout := new(bytes.Buffer)
10-
run(stdout)
11-
if stdout.String() == "" {
12-
t.Error("got empty result")
7+
func TestNextTag(t *testing.T) {
8+
got, err := nextTag([]string{"v1.0.1", "v1.11.0"}, PATCH)
9+
if err != nil {
10+
t.Fatal(err)
11+
}
12+
if want := "v1.11.1"; got != want {
13+
t.Errorf("nextTag({v1.0.1, v1.11.0}, PATCH) = %v, want %v", got, want)
1314
}
1415
}

0 commit comments

Comments
 (0)