
All checks were successful
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 33s
Signed-off-by: Jan Tytgat <jan.tytgat@corelayer.eu>
211 lines
4.3 KiB
Go
211 lines
4.3 KiB
Go
package semver
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
var validVersionTests = []struct {
|
|
name string
|
|
input string
|
|
version Version
|
|
inputErr bool
|
|
commit string
|
|
date string
|
|
release string
|
|
full string
|
|
number string
|
|
}{
|
|
{
|
|
name: "stable",
|
|
input: "0.1.0",
|
|
version: Version{
|
|
Major: 0,
|
|
Minor: 1,
|
|
},
|
|
inputErr: false,
|
|
commit: "",
|
|
date: "",
|
|
release: "stable",
|
|
full: "0.1.0",
|
|
number: "0.1.0",
|
|
},
|
|
{
|
|
name: "stable.1",
|
|
input: "0.1.1",
|
|
version: Version{
|
|
Major: 0,
|
|
Minor: 1,
|
|
Patch: 1,
|
|
},
|
|
inputErr: false,
|
|
commit: "",
|
|
date: "",
|
|
release: "stable",
|
|
full: "0.1.1",
|
|
number: "0.1.1",
|
|
},
|
|
{
|
|
name: "stable.1+metadata",
|
|
input: "0.1.1+metadata",
|
|
version: Version{
|
|
Major: 0,
|
|
Minor: 1,
|
|
Patch: 1,
|
|
Metadata: "metadata",
|
|
},
|
|
inputErr: false,
|
|
commit: "metadata",
|
|
date: "metadata",
|
|
release: "stable",
|
|
full: "0.1.1+metadata",
|
|
number: "0.1.1",
|
|
},
|
|
{
|
|
name: "stable.1+metadata.date",
|
|
input: "0.1.1+metadata.20101112",
|
|
version: Version{
|
|
Major: 0,
|
|
Minor: 1,
|
|
Patch: 1,
|
|
Metadata: "metadata.20101112",
|
|
},
|
|
inputErr: false,
|
|
commit: "metadata",
|
|
date: "20101112",
|
|
release: "stable",
|
|
full: "0.1.1+metadata.20101112",
|
|
number: "0.1.1",
|
|
},
|
|
{
|
|
name: "alpha",
|
|
input: "0.1.1-alpha",
|
|
version: Version{
|
|
Major: 0,
|
|
Minor: 1,
|
|
Patch: 1,
|
|
PreRelease: "alpha",
|
|
},
|
|
inputErr: false,
|
|
commit: "",
|
|
release: "alpha",
|
|
full: "0.1.1-alpha",
|
|
number: "0.1.1",
|
|
},
|
|
{
|
|
name: "alpha.1",
|
|
input: "0.1.1-alpha.1",
|
|
version: Version{
|
|
Major: 0,
|
|
Minor: 1,
|
|
Patch: 1,
|
|
PreRelease: "alpha.1",
|
|
},
|
|
inputErr: false,
|
|
commit: "",
|
|
release: "alpha.1",
|
|
full: "0.1.1-alpha.1",
|
|
number: "0.1.1",
|
|
},
|
|
}
|
|
|
|
func TestParse(t *testing.T) {
|
|
for _, tt := range validVersionTests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got, err := Parse(tt.input)
|
|
if (err != nil) != tt.inputErr {
|
|
t.Errorf("Parse() error = %v, wantErr %v", err, tt.inputErr)
|
|
return
|
|
}
|
|
if !reflect.DeepEqual(got, tt.version) {
|
|
t.Errorf("Parse() got = %v, want %v", got, tt.version)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestVersion_Commit(t *testing.T) {
|
|
for _, tt := range validVersionTests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
v := Version{
|
|
Major: tt.version.Major,
|
|
Minor: tt.version.Minor,
|
|
Patch: tt.version.Patch,
|
|
PreRelease: tt.version.PreRelease,
|
|
Metadata: tt.version.Metadata,
|
|
}
|
|
if got := v.Commit(); got != tt.commit {
|
|
t.Errorf("Commit() = %v, want %v", got, tt.commit)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestVersion_Date(t *testing.T) {
|
|
for _, tt := range validVersionTests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
v := Version{
|
|
Major: tt.version.Major,
|
|
Minor: tt.version.Minor,
|
|
Patch: tt.version.Patch,
|
|
PreRelease: tt.version.PreRelease,
|
|
Metadata: tt.version.Metadata,
|
|
}
|
|
if got := v.Date(); got != tt.date {
|
|
t.Errorf("Date() = %v, want %v", got, tt.date)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestVersion_Release(t *testing.T) {
|
|
for _, tt := range validVersionTests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
v := Version{
|
|
Major: tt.version.Major,
|
|
Minor: tt.version.Minor,
|
|
Patch: tt.version.Patch,
|
|
PreRelease: tt.version.PreRelease,
|
|
Metadata: tt.version.Metadata,
|
|
}
|
|
if got := v.Release(); got != tt.release {
|
|
t.Errorf("Release() = %v, want %v", got, tt.release)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestVersion_String(t *testing.T) {
|
|
for _, tt := range validVersionTests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
v := Version{
|
|
Major: tt.version.Major,
|
|
Minor: tt.version.Minor,
|
|
Patch: tt.version.Patch,
|
|
PreRelease: tt.version.PreRelease,
|
|
Metadata: tt.version.Metadata,
|
|
}
|
|
if got := v.String(); got != tt.full {
|
|
t.Errorf("String() = %v, want %v", got, tt.full)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestVersion_VersionNumber(t *testing.T) {
|
|
for _, tt := range validVersionTests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
v := Version{
|
|
Major: tt.version.Major,
|
|
Minor: tt.version.Minor,
|
|
Patch: tt.version.Patch,
|
|
PreRelease: tt.version.PreRelease,
|
|
Metadata: tt.version.Metadata,
|
|
}
|
|
if got := v.Number(); got != tt.number {
|
|
t.Errorf("Number() = %v, want %v", got, tt.number)
|
|
}
|
|
})
|
|
}
|
|
}
|