diff --git a/src/haxelib/SemVer.hx b/src/haxelib/SemVer.hx index df654bfa..4058b632 100644 --- a/src/haxelib/SemVer.hx +++ b/src/haxelib/SemVer.hx @@ -110,16 +110,16 @@ abstract SemVer(String) to String { return isValid(this); @:op(a > b) static inline function gt(a:SemVer, b:SemVer) - return compare(a, b) == 1; + return compare(a, b) > 0; @:op(a >= b) static inline function gteq(a:SemVer, b:SemVer) - return compare(a, b) != -1; + return compare(a, b) >= 0; @:op(a < b) static inline function lt(a:SemVer, b:SemVer) - return compare(a, b) == -1; + return compare(a, b) < 0; @:op(a <= b) static inline function lteq(a:SemVer, b:SemVer) - return compare(a, b) != 1; + return compare(a, b) <= 0; @:op(a == b) static inline function eq(a:SemVer, b:SemVer) return compare(a, b) == 0; diff --git a/test/tests/TestSemVer.hx b/test/tests/TestSemVer.hx index 20cbe37c..4dadb2b8 100644 --- a/test/tests/TestSemVer.hx +++ b/test/tests/TestSemVer.hx @@ -62,6 +62,17 @@ class TestSemVer extends TestBase { assertEquals( "invalid", parseInvalid("10.50.2-rc.01")); } + public function testPreviewComparison() { + assertTrue(SemVer.ofString("0.1.1-beta.1") < SemVer.ofString("0.1.1")); + assertTrue(SemVer.ofString("0.1.1-beta.1") > SemVer.ofString("0.1.0")); + assertTrue(SemVer.ofString("0.1.1-alpha.2") > SemVer.ofString("0.1.1-alpha.1")); + assertTrue(SemVer.ofString("0.1.1-beta.1") > SemVer.ofString("0.1.1-alpha.2")); + assertTrue(SemVer.ofString("0.1.1-rc.1") > SemVer.ofString("0.1.1-beta.1")); + #if !(server || haxelib_api) + assertTrue(SemVer.ofString("0.1.1-preview.1") > SemVer.ofString("0.1.1-rc.1")); + #end + } + function parseInvalid( str:String ):String { return try { SemVer.ofString(str);