72 lines
2.3 KiB
Haxe
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";
|
|
}
|
|
}
|
|
|
|
} |