diff options
| author | Max Resnick <max@ofmax.li> | 2023-12-09 22:52:00 -0800 |
|---|---|---|
| committer | Max Resnick <max@ofmax.li> | 2023-12-09 22:52:00 -0800 |
| commit | 397e118d646ccb3e7522153780fc96bf0b25dccf (patch) | |
| tree | 1c4eb3a48b3cc04d9848d42541dd5c72eec05743 | |
| parent | 0fef771016b2f14d389ee58fe6a12c9626109642 (diff) | |
| download | go-bumpver-397e118d646ccb3e7522153780fc96bf0b25dccf.tar.gz | |
chore: added more tests
Diffstat (limited to '')
| -rw-r--r-- | main.go | 18 | ||||
| -rw-r--r-- | main_test.go | 65 |
2 files changed, 73 insertions, 10 deletions
@@ -102,7 +102,6 @@ var ( errNoRemoteFound = errors.New("No remotes found") clonedRepo = &git.Repository{} localRepo = &git.Repository{} - repoDir string remoteName string preReleaseFmtArgs map[string]string = make(map[string]string) preRelease bool @@ -115,6 +114,7 @@ var ( RunE: func(cmd *cobra.Command, argz []string) error { part := argz[0] preRelease := viper.GetBool("prerelease") + preReleaseFmtString := viper.GetString("prerelease-fmt") // remoteName := viper.GetString("remote-name") repoDir := viper.GetString("repo-dir") @@ -148,7 +148,8 @@ var ( nextVersion = lastVersion.IncPatch() case "prerelease": preRelVersion := preReleaseVersion{ - []string{"PR", "$KeyArg PR_NUM"}, + // []string{"PR", "$KeyArg PR_NUM"}, + parseFmtString(preReleaseFmtString), preReleaseFmtArgs, lastVersion, versionPart, @@ -194,6 +195,10 @@ func findTags(repo *git.Repository) ([]*semver.Version, error) { return repoTags, nil } +func parseFmtString(toSplit string) []string { + return strings.Split(toSplit, ".") +} + func main() { if err := rootCmd.Execute(); err != nil { fmt.Fprintln(os.Stderr, err) @@ -203,23 +208,22 @@ func main() { func init() { // global flags - viper.SetConfigName(".version") + viper.SetConfigName(".version.toml") viper.SetConfigType("toml") viper.AddConfigPath(".") - cwd := "" err := viper.ReadInConfig() // Find and read the config file if err != nil { // Handle errors reading the config file fmt.Println(err) - cwd, err = os.Getwd() } + cwd, err := os.Getwd() if err != nil { log.Fatal(err) } rootCmd.PersistentFlags().BoolVarP(&preRelease, "prerelease", "p", false, "create a prerelease tag for the (major|minor|patch)") - rootCmd.PersistentFlags().String("prerelease-fmt", "PR $KeyArg PR_NUM $BumpInt", "The format string for prerelease versions") + rootCmd.PersistentFlags().String("prerelease-fmt", "PR.$KeyArg PR_NUM.$BumpInt", "The format string for prerelease versions") rootCmd.PersistentFlags().StringToStringVarP(&preReleaseFmtArgs, "key-args", "k", nil, "key=arg for the fmt string") - repoDir = *rootCmd.PersistentFlags().String("repo-dir", cwd, "repo to examine") + rootCmd.PersistentFlags().String("repo-dir", cwd, "repo to examine") remoteName = *rootCmd.PersistentFlags().String("remote-name", "origin", "remote to search and push to") viper.BindPFlags(rootCmd.PersistentFlags()) } diff --git a/main_test.go b/main_test.go index e333064..ba321b1 100644 --- a/main_test.go +++ b/main_test.go @@ -3,6 +3,7 @@ package main import ( "bytes" "log" + "strings" "testing" "github.com/Masterminds/semver/v3" @@ -10,6 +11,7 @@ import ( "github.com/go-git/go-git/v5" "github.com/go-git/go-git/v5/plumbing" "github.com/go-git/go-git/v5/storage/filesystem" + "github.com/spf13/viper" ) var ( @@ -70,13 +72,70 @@ func TestCmd(t *testing.T) { output: "2.0.0", isError: nil, }, + { + name: "major bump new prerelease", + input: "major --prerelease --key-args PR_NUM=11", + prior: "1.2.1", + output: "2.0.0-PR.11.0", + isError: nil, + }, + { + name: "major bump existing prerelease bump", + input: "major --prerelease --key-args PR_NUM=11", + prior: "2.0.0-PR.11.0", + output: "2.0.0-PR.11.1", + isError: nil, + }, + { + name: "minor bump new prerelease", + input: "minor --prerelease --key-args PR_NUM=11", + prior: "1.2.1", + output: "1.3.0-PR.11.0", + isError: nil, + }, + { + name: "minor bump existing prerelease bump", + input: "minor --prerelease --key-args PR_NUM=11", + prior: "1.3.0-PR.11.0", + output: "1.3.0-PR.11.1", + isError: nil, + }, + { + name: "patch bump new prerelease", + input: "patch --prerelease --key-args PR_NUM=11", + prior: "1.2.1", + output: "1.2.2-PR.11.0", + isError: nil, + }, + { + name: "patch bump existing prerelease bump", + input: "patch --prerelease --key-args PR_NUM=11", + prior: "1.2.2-PR.11.0", + output: "1.2.2-PR.11.1", + isError: nil, + }, + { + name: "patch bump different fmt", + input: "patch --prerelease --prerelease-fmt NOTME.$BumpInt", + prior: "1.2.3", + output: "1.2.4-NOTME.0", + isError: nil, + }, + { + name: "patch bump existing different fmt", + input: "patch --prerelease --prerelease-fmt NOTME.$BumpInt", + prior: "1.2.4-NOTME.0", + output: "1.2.4-NOTME.1", + isError: nil, + }, } for _, test := range tests { t.Run(test.name, func(t *testing.T) { logOut := &bytes.Buffer{} - repoDir = t.TempDir() + repoDir := t.TempDir() testRepo := newRepo(repoDir) + viper.Set("repo-dir", repoDir) wt, _ := testRepo.Worktree() hash, err := makeCommit(wt) if err != nil { @@ -88,12 +147,12 @@ func TestCmd(t *testing.T) { t.Fatal(err) } - rootCmd.SetArgs([]string{test.input}) + rootCmd.SetArgs(strings.Split(test.input, " ")) rootCmd.SetOut(logOut) rootCmd.SetErr(logOut) result := rootCmd.Execute() if result != test.isError { - t.Fatal("didn't expect this") + t.Fatalf("didn't expect %s", result) } out := logOut.String() t.Logf("stuff %s", out) |