aboutsummaryrefslogtreecommitdiff
path: root/main_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'main_test.go')
-rw-r--r--main_test.go104
1 files changed, 104 insertions, 0 deletions
diff --git a/main_test.go b/main_test.go
index 51285fc..e333064 100644
--- a/main_test.go
+++ b/main_test.go
@@ -201,3 +201,107 @@ func TestFindingTags(t *testing.T) {
t.Fatalf("found %d", len(results3))
}
}
+
+func TestIncPreRelease(t *testing.T) {
+ tests := []struct {
+ name string
+ prf preReleaseVersion
+ startVersion string
+ expectedResult string
+ hasError bool
+ }{
+ {
+ name: "test keyarg",
+ prf: preReleaseVersion{
+ Fmt: []string{"PR", "$KeyArg PR_NUM"},
+ KeyArgs: map[string]string{"PR_NUM": "11"},
+ versionPart: "patch",
+ },
+ startVersion: "1.0.1-PR.jjj.1",
+ expectedResult: "1.0.1-PR.11",
+ hasError: false,
+ },
+ {
+ name: "test bumpint",
+ prf: preReleaseVersion{
+ Fmt: []string{"PR", "$KeyArg PR_NUM", "$BumpInt"},
+ KeyArgs: map[string]string{"PR_NUM": "11"},
+ versionPart: "patch",
+ },
+ startVersion: "1.0.1-PR.jjj.1",
+ expectedResult: "1.0.1-PR.11.2",
+ hasError: false,
+ },
+ {
+ name: "test bumpint with parse err",
+ prf: preReleaseVersion{
+ Fmt: []string{"PR", "$KeyArg PR_NUM", "$BumpInt"},
+ KeyArgs: map[string]string{"PR_NUM": "11"},
+ versionPart: "patch",
+ },
+ startVersion: "1.0.1-PR.jjj.j",
+ expectedResult: "1.0.1-PR.11.2",
+ hasError: true,
+ },
+ {
+ name: "test fmt arg change",
+ prf: preReleaseVersion{
+ Fmt: []string{"PR", "$KeyArg PR_NUM", "$BumpInt"},
+ KeyArgs: map[string]string{"PR_NUM": "11"},
+ versionPart: "patch",
+ },
+ startVersion: "1.0.1-stuff.jjj.j",
+ expectedResult: "1.0.1-PR.11.2",
+ hasError: true,
+ },
+ {
+ name: "test creating a new pre-release",
+ prf: preReleaseVersion{
+ Fmt: []string{"PR", "$KeyArg PR_NUM", "$BumpInt"},
+ KeyArgs: map[string]string{"PR_NUM": "11"},
+ versionPart: "patch",
+ },
+ startVersion: "1.0.1",
+ expectedResult: "1.0.2-PR.11.0",
+ hasError: false,
+ },
+ {
+ name: "test creating a new major prerelease",
+ prf: preReleaseVersion{
+ Fmt: []string{"PR", "$KeyArg PR_NUM", "$BumpInt"},
+ KeyArgs: map[string]string{"PR_NUM": "11"},
+ versionPart: "major",
+ },
+ startVersion: "1.8.1",
+ expectedResult: "2.0.0-PR.11.0",
+ hasError: false,
+ },
+ }
+
+ for _, test := range tests {
+ t.Run(test.name, func(t *testing.T) {
+ // start version
+ sv, err := semver.NewVersion(test.startVersion)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ test.prf.v = sv
+ nv, err := test.prf.incPreRelease()
+ if !test.hasError && err != nil {
+ t.Fatal(err)
+ }
+ if test.hasError && err == nil {
+ t.Fatalf("found %s expected %s", nv, test.expectedResult)
+ }
+ // its an error and we expect it
+ if test.hasError && err != nil {
+ return
+ }
+ // its not right
+ if nv.String() != test.expectedResult {
+ t.Fatalf("found %s expected %s", nv, test.expectedResult)
+ }
+ })
+ }
+}