Recognize local app states (T-202)
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
package domain
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestSemVerPrecedence(t *testing.T) {
|
||||
ordered := []string{
|
||||
"1.0.0-alpha",
|
||||
"1.0.0-alpha.1",
|
||||
"1.0.0-alpha.beta",
|
||||
"1.0.0-beta",
|
||||
"1.0.0-beta.2",
|
||||
"1.0.0-beta.11",
|
||||
"1.0.0-rc.1",
|
||||
"1.0.0",
|
||||
"1.0.1",
|
||||
"1.1.0",
|
||||
"2.0.0",
|
||||
}
|
||||
for index := 0; index < len(ordered)-1; index++ {
|
||||
comparison, err := CompareSemVer(ordered[index], ordered[index+1])
|
||||
if err != nil {
|
||||
t.Fatalf("CompareSemVer() error = %v", err)
|
||||
}
|
||||
if comparison >= 0 {
|
||||
t.Fatalf("%q should precede %q", ordered[index], ordered[index+1])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestSemVerIgnoresBuildMetadata(t *testing.T) {
|
||||
comparison, err := CompareSemVer("1.2.3+build.1", "1.2.3+build.99")
|
||||
if err != nil {
|
||||
t.Fatalf("CompareSemVer() error = %v", err)
|
||||
}
|
||||
if comparison != 0 {
|
||||
t.Fatalf("comparison = %d, want 0", comparison)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSemVerSupportsLargeNumericIdentifiers(t *testing.T) {
|
||||
comparison, err := CompareSemVer(
|
||||
"999999999999999999999999999.0.0",
|
||||
"1000000000000000000000000000.0.0",
|
||||
)
|
||||
if err != nil {
|
||||
t.Fatalf("CompareSemVer() error = %v", err)
|
||||
}
|
||||
if comparison >= 0 {
|
||||
t.Fatalf("comparison = %d, want negative", comparison)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSemVerRejectsInvalidValues(t *testing.T) {
|
||||
for _, value := range []string{
|
||||
"",
|
||||
"1",
|
||||
"1.2",
|
||||
"01.2.3",
|
||||
"1.02.3",
|
||||
"1.2.03",
|
||||
"1.2.3-",
|
||||
"1.2.3-alpha..1",
|
||||
"1.2.3-01",
|
||||
"1.2.3+",
|
||||
"1.2.3+build..1",
|
||||
"v1.2.3",
|
||||
"1.2.3 alpha",
|
||||
} {
|
||||
t.Run(value, func(t *testing.T) {
|
||||
_, err := ParseSemVer(value)
|
||||
if !errors.Is(err, ErrInvalidSemVer) {
|
||||
t.Fatalf("ParseSemVer(%q) error = %v, want %v", value, err, ErrInvalidSemVer)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user