diff options
| author | Max Resnick <max@ofmax.li> | 2023-08-05 23:05:45 -0700 |
|---|---|---|
| committer | Max Resnick <max@ofmax.li> | 2023-12-02 08:55:02 -0800 |
| commit | 0fef771016b2f14d389ee58fe6a12c9626109642 (patch) | |
| tree | 2cc696fe68af8efca004c88b257e4f6ac302ec8b /main_test.go | |
| parent | fce837ca04f4ec6ab784fd8b1c908ab06a6da3c0 (diff) | |
| download | go-bumpver-0fef771016b2f14d389ee58fe6a12c9626109642.tar.gz | |
feat: add inc pre-release
Diffstat (limited to 'main_test.go')
| -rw-r--r-- | main_test.go | 104 |
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) + } + }) + } +} |