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.
27 lines
825 B
27 lines
825 B
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]); |
|
}); |
|
});
|
|
|