2025-01-15 19:42:35 +01:00

72 lines
2.3 KiB
Haxe

package tests;
import haxelib.SemVer;
class TestSemVer extends TestBase {
static function make(major, minor, patch, ?preview, ?previewNum):SemVer {
return {
major : major,
minor : minor,
patch : patch,
preview : preview,
previewNum : previewNum
};
}
public function testToString() {
assertEquals( "0.1.2", make(0,1,2) );
// Release Tags
assertEquals( "0.1.2-alpha", make(0,1,2,ALPHA) );
assertEquals( "0.1.2-beta", make(0,1,2,BETA) );
assertEquals( "0.1.2-rc", make(0,1,2,RC) );
// Release Tag Versions
assertEquals( "0.1.2-alpha.0", make(0,1,2,ALPHA,0) );
assertEquals( "0.1.2-beta.0", make(0,1,2,BETA,0) );
assertEquals( "0.1.2-rc.0", make(0,1,2,RC,0) );
// Weird input
assertEquals( "0.1.2", make(0,1,2,null,0) );
// Multiple characters
assertEquals( "100.200.300-rc.400", make(100,200,300,RC,400) );
}
public function testOfString() {
// Normal
assertEquals( "0.1.2", (SemVer.ofString("0.1.2").data : SemVer));
assertEquals( "100.50.200", (SemVer.ofString("100.50.200").data : SemVer));
// Release tags
assertEquals( "0.1.2-alpha", (SemVer.ofString("0.1.2-ALPHA").data : SemVer));
assertEquals( "0.1.2-alpha", (SemVer.ofString("0.1.2-alpha").data : SemVer));
assertEquals( "0.1.2-beta", (SemVer.ofString("0.1.2-beta").data : SemVer));
assertEquals( "0.1.2-rc", (SemVer.ofString("0.1.2-rc").data : SemVer));
assertEquals( "0.1.2-rc.1", (SemVer.ofString("0.1.2-rc.1").data : SemVer));
}
public function testOfStringInvalid() {
assertEquals( "invalid", parseInvalid(null) );
assertEquals( "invalid", parseInvalid("") );
assertEquals( "invalid", parseInvalid("1") );
assertEquals( "invalid", parseInvalid("1.1") );
assertEquals( "invalid", parseInvalid("1.2.a") );
assertEquals( "invalid", parseInvalid("a.b.c") );
assertEquals( "invalid", parseInvalid("1.2.3-") );
assertEquals( "invalid", parseInvalid("1.2.3-rc.") );
assertEquals( "invalid", parseInvalid("1.2.3--rc.1") );
assertEquals( "invalid", parseInvalid("1.2.3-othertag") );
assertEquals( "invalid", parseInvalid("1.2.3-othertag.1") );
assertEquals( "invalid", parseInvalid("10.050.02"));
assertEquals( "invalid", parseInvalid("10.50.2-rc.01"));
}
function parseInvalid( str:String ) {
return try {
(SemVer.ofString( str ) : String);
} catch (e:String) {
"invalid";
}
}
}