You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
825 B
28 lines
825 B
![]()
6 years ago
|
open TestFramework;
|
||
|
|
||
|
describe("Semver", ({test, _}) => {
|
||
|
open Fnm;
|
||
|
|
||
|
test("parses a string", ({expect, _}) => {
|
||
|
let x = Semver.fromString("1.2.3");
|
||
|
expect.equal(x, Some(Semver.make(~major=1, ~minor=2, ~patch=3)));
|
||
|
});
|
||
|
|
||
|
test("returns none on invalid semver", ({expect, _}) => {
|
||
|
let x = Semver.fromString("x1.2.3");
|
||
|
expect.equal(x, None);
|
||
|
});
|
||
|
|
||
|
test("compare versions", ({expect}) => {
|
||
|
let semver1 = Semver.make(~major=1, ~minor=2, ~patch=0);
|
||
|
let semver2 = Semver.make(~major=1, ~minor=2, ~patch=3);
|
||
|
let semver3 = Semver.make(~major=1, ~minor=3, ~patch=3);
|
||
|
let semver4 = Semver.make(~major=4, ~minor=3, ~patch=3);
|
||
|
|
||
|
let sorted =
|
||
|
List.sort(Semver.compare, [semver1, semver2, semver4, semver3]);
|
||
|
|
||
|
expect.list(sorted).toEqual([semver1, semver2, semver3, semver4]);
|
||
|
});
|
||
|
});
|