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]); }); });