Additional testing

This commit is contained in:
2021-12-11 11:14:01 +00:00
parent a0fa4ee4cd
commit c2a30fb868
2 changed files with 64 additions and 6 deletions
+9 -6
View File
@@ -21,6 +21,7 @@ import (
"fmt"
"net/url"
"os"
"regexp"
"sort"
"strconv"
"strings"
@@ -112,15 +113,17 @@ func debugPrint(content string) {
}
}
var extractNumber = regexp.MustCompile("[0-9]+")
func parseExistingSemver(tagName string) (semanticVersion SemVer) {
var tagNameParts []string
tagNameParts = strings.Split(tagName, ".")
semanticVersion.Major, _ = strconv.Atoi(tagNameParts[0])
semanticVersion.Minor, _ = strconv.Atoi(tagNameParts[1])
semanticVersion.Patch, _ = strconv.Atoi(tagNameParts[2])
tagReleaseParts := strings.Split(tagNameParts[2], "-rc.")
if len(tagReleaseParts) > 1 {
semanticVersion.Release, _ = strconv.Atoi(tagNameParts[3])
semanticVersion.Major, _ = strconv.Atoi(extractNumber.FindAllString(tagNameParts[0], -1)[0])
semanticVersion.Minor, _ = strconv.Atoi(extractNumber.FindAllString(tagNameParts[1], -1)[0])
semanticVersion.Patch, _ = strconv.Atoi(extractNumber.FindAllString(tagNameParts[2], -1)[0])
if len(tagNameParts) > 3 {
semanticVersion.Release, _ = strconv.Atoi(extractNumber.FindAllString(tagNameParts[3], -1)[0])
semanticVersion.EnableReleaseCandidate = true
}
return
}
+55
View File
@@ -522,3 +522,58 @@ func (suite *Tests) Test_main() {
})
}
}
func (suite *Tests) Test_parseExistingSemver() {
type args struct {
tagName string
}
tests := []struct {
name string
args args
wantSemanticVersion SemVer
}{
{
name: "Test parsing existing semver",
args: args{
tagName: "1.2.3",
},
wantSemanticVersion: SemVer{
Major: 1,
Minor: 2,
Patch: 3,
},
},
{
name: "Test parsing existing semver with v",
args: args{
tagName: "v1.2.3",
},
wantSemanticVersion: SemVer{
Major: 1,
Minor: 2,
Patch: 3,
},
},
{
name: "Test parsing existing semver with rc",
args: args{
tagName: "1.2.5-rc.7",
},
wantSemanticVersion: SemVer{
Major: 1,
Minor: 2,
Patch: 5,
Release: 7,
},
},
}
for _, tt := range tests {
suite.T().Run(tt.name, func(t *testing.T) {
got := parseExistingSemver(tt.args.tagName)
assert.Equal(tt.wantSemanticVersion.Major, got.Major, "Unexpected MAJOR semver result in "+tt.name)
assert.Equal(tt.wantSemanticVersion.Minor, got.Minor, "Unexpected MINOR semver result in "+tt.name)
assert.Equal(tt.wantSemanticVersion.Patch, got.Patch, "Unexpected PATCH semver result in "+tt.name)
assert.Equal(tt.wantSemanticVersion.Release, got.Release, "Unexpected RELEASE semver result in "+tt.name)
})
}
}