aboutsummaryrefslogtreecommitdiff
path: root/main_test.go
diff options
context:
space:
mode:
authorMax Resnick <max@ofmax.li>2024-01-27 16:18:38 -0800
committerMax Resnick <max@ofmax.li>2024-02-25 08:42:58 -0800
commit4b6a22c3e0b3a3eece007fd1abbcf2be7ac5aa39 (patch)
tree4776853fbcebbde37dc03246b49932b01b362277 /main_test.go
parent8e365468cec859da974a5e617ab3eb8d0a59df63 (diff)
downloadgo-bumpver-4b6a22c3e0b3a3eece007fd1abbcf2be7ac5aa39.tar.gz
fix: not validated
Diffstat (limited to 'main_test.go')
-rw-r--r--main_test.go82
1 files changed, 77 insertions, 5 deletions
diff --git a/main_test.go b/main_test.go
index 248f6e6..440cb6b 100644
--- a/main_test.go
+++ b/main_test.go
@@ -3,6 +3,7 @@ package main
import (
"bytes"
"log"
+ "slices"
"strings"
"testing"
@@ -197,8 +198,8 @@ func TestIncPreRelease(t *testing.T) {
versionPart: "patch",
},
startVersion: "1.0.1-PR.jjj.j",
- expectedResult: "1.0.1-PR.11.2",
- hasError: true,
+ expectedResult: "1.0.1-PR.11.0",
+ hasError: false,
},
{
name: "test fmt arg change",
@@ -208,8 +209,8 @@ func TestIncPreRelease(t *testing.T) {
versionPart: "patch",
},
startVersion: "1.0.1-stuff.jjj.j",
- expectedResult: "1.0.1-PR.11.2",
- hasError: true,
+ expectedResult: "1.0.1-PR.11.0",
+ hasError: false,
},
{
name: "test creating a new pre-release",
@@ -233,6 +234,17 @@ func TestIncPreRelease(t *testing.T) {
expectedResult: "2.0.0-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-PR.GG.GG",
+ expectedResult: "1.8.1-PR.11.0",
+ hasError: false,
+ },
}
for _, test := range tests {
@@ -249,7 +261,7 @@ func TestIncPreRelease(t *testing.T) {
t.Fatal(err)
}
if test.hasError && err == nil {
- t.Fatalf("found %s expected %s", nv, test.expectedResult)
+ t.Fatal("expected to find error found none")
}
// its an error and we expect it
if test.hasError && err != nil {
@@ -262,3 +274,63 @@ func TestIncPreRelease(t *testing.T) {
})
}
}
+
+func TestParseFmtString(t *testing.T) {
+ tests := []struct {
+ name string
+ fmtString string
+ hasErr bool
+ expected []string
+ // * for nil cases
+ }{
+ {
+ name: "parsing should return 2 elements, with $KeyArg",
+ fmtString: "rc.$KeyArg FOOBAR",
+ hasErr: false,
+ expected: []string{"rc", "$KeyArg FOOBAR"},
+ },
+ {
+ name: "$KeyArg should have an arg and will fail if it doesn't",
+ fmtString: "rc.$KeyArg",
+ hasErr: true,
+ expected: []string{},
+ },
+ {
+ name: "$BumpInt should be returned",
+ fmtString: "rc.$BumpInt",
+ hasErr: false,
+ expected: []string{"rc", "$BumpInt"},
+ },
+ {
+ name: "$BumpInt and $KeyArg should returned",
+ fmtString: "rc.$BumpInt.$KeyArg FOOBAR",
+ hasErr: false,
+ expected: []string{"rc", "$BumpInt", "$KeyArg FOOBAR"},
+ },
+ {
+ name: "$BumpInt and $KeyArg should returned",
+ fmtString: "rc.$BumpInt.$KeyArg",
+ hasErr: true,
+ expected: []string{},
+ },
+ }
+ for _, test := range tests {
+ t.Run(test.name, func(t *testing.T) {
+ result, err := parseFmtString(test.fmtString)
+ if err != nil && test.hasErr {
+ return
+ } else if err != nil && !test.hasErr {
+ t.Fatalf("%s didn't expect error but found %s", test.name, err)
+ return
+ } else if test.hasErr && err == nil {
+ t.Fatal("Expected error found none")
+ }
+ if !slices.Equal(result, test.expected) {
+ t.Fatalf("Expected %s, found %s", strings.Join(test.expected, " "), strings.Join(result, " "))
+
+ }
+ })
+
+ }
+
+}