From 0fef771016b2f14d389ee58fe6a12c9626109642 Mon Sep 17 00:00:00 2001 From: Max Resnick Date: Sat, 5 Aug 2023 23:05:45 -0700 Subject: feat: add inc pre-release --- main_test.go | 104 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) (limited to 'main_test.go') 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) + } + }) + } +} -- cgit v1.2.3