mirror of
https://github.com/lukaszraczylo/semver-generator.git
synced 2026-06-28 03:03:06 +00:00
Additional testing
This commit is contained in:
+9
-6
@@ -21,6 +21,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"net/url"
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
|
"regexp"
|
||||||
"sort"
|
"sort"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
@@ -112,15 +113,17 @@ func debugPrint(content string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var extractNumber = regexp.MustCompile("[0-9]+")
|
||||||
|
|
||||||
func parseExistingSemver(tagName string) (semanticVersion SemVer) {
|
func parseExistingSemver(tagName string) (semanticVersion SemVer) {
|
||||||
var tagNameParts []string
|
var tagNameParts []string
|
||||||
tagNameParts = strings.Split(tagName, ".")
|
tagNameParts = strings.Split(tagName, ".")
|
||||||
semanticVersion.Major, _ = strconv.Atoi(tagNameParts[0])
|
semanticVersion.Major, _ = strconv.Atoi(extractNumber.FindAllString(tagNameParts[0], -1)[0])
|
||||||
semanticVersion.Minor, _ = strconv.Atoi(tagNameParts[1])
|
semanticVersion.Minor, _ = strconv.Atoi(extractNumber.FindAllString(tagNameParts[1], -1)[0])
|
||||||
semanticVersion.Patch, _ = strconv.Atoi(tagNameParts[2])
|
semanticVersion.Patch, _ = strconv.Atoi(extractNumber.FindAllString(tagNameParts[2], -1)[0])
|
||||||
tagReleaseParts := strings.Split(tagNameParts[2], "-rc.")
|
if len(tagNameParts) > 3 {
|
||||||
if len(tagReleaseParts) > 1 {
|
semanticVersion.Release, _ = strconv.Atoi(extractNumber.FindAllString(tagNameParts[3], -1)[0])
|
||||||
semanticVersion.Release, _ = strconv.Atoi(tagNameParts[3])
|
semanticVersion.EnableReleaseCandidate = true
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user