diff --git a/tests/cmp.luau b/tests/cmp.luau index 84355a4..b21006a 100644 --- a/tests/cmp.luau +++ b/tests/cmp.luau @@ -1,4 +1,4 @@ -local frktest = require("../lune_packages/frktest").core +local frktest = require("@pkg/frktest") local test = frktest.test local check = frktest.assert.check @@ -7,105 +7,96 @@ type Option = Option.Option local Semver = require("../lib") -local function t(this: { [any]: any } | T, that: { [any]: any } | T) end -t(Option.Some("x"), Option.Some("x")) - -t({ - str = 1, -}, { - [true] = 1, -}) - return function() - test.suite("Semver comparison tests", function() - test.case("Basic version comparisons", function() - local v1 = Semver.parse("1.2.3"):unwrap() - local v2 = Semver.parse("1.2.4"):unwrap() - local v3 = Semver.parse("1.3.0"):unwrap() - local v4 = Semver.parse("2.0.0"):unwrap() - local v5 = Semver.parse("2.1.0"):unwrap() - local v6 = Semver.parse("3.0.0"):unwrap() + test.suite("Semver comparison tests", function() + test.case("Basic version comparisons", function() + local v1 = Semver.parse("1.2.3"):unwrap() + local v2 = Semver.parse("1.2.4"):unwrap() + local v3 = Semver.parse("1.3.0"):unwrap() + local v4 = Semver.parse("2.0.0"):unwrap() + local v5 = Semver.parse("2.1.0"):unwrap() + local v6 = Semver.parse("3.0.0"):unwrap() - check.is_true(v1 < v2) - check.is_true(v2 < v3) - check.is_true(v3 < v4) - check.is_true(v4 < v5) - check.is_true(v5 < v6) - check.is_true(v1 <= v2) - check.is_true(v2 > v1) - check.is_true(v4 >= v3) - check.is_true(v6 > v1) - end) + check.is_true(v1 < v2) + check.is_true(v2 < v3) + check.is_true(v3 < v4) + check.is_true(v4 < v5) + check.is_true(v5 < v6) + check.is_true(v1 <= v2) + check.is_true(v2 > v1) + check.is_true(v4 >= v3) + check.is_true(v6 > v1) + end) - test.case("Equal version comparisons", function() - local v1 = Semver.parse("1.2.3"):unwrap() - local v2 = Semver.parse("1.2.3"):unwrap() - local v3 = Semver.parse("1.2.3"):unwrap() - local v4 = Semver.parse("1.2.3"):unwrap() + test.case("Equal version comparisons", function() + local v1 = Semver.parse("1.2.3"):unwrap() + local v2 = Semver.parse("1.2.3"):unwrap() + local v3 = Semver.parse("1.2.3"):unwrap() + local v4 = Semver.parse("1.2.3"):unwrap() - check.is_true(v1 == v2) - check.is_true(v2 == v3) - check.is_true(v3 == v4) - check.is_true(v1 <= v2) - check.is_true(v1 >= v2) - check.is_false(v1 < v2) - check.is_false(v1 > v2) - check.is_false(v3 > v4) - end) + check.is_true(v1 == v2) + check.is_true(v2 == v3) + check.is_true(v3 == v4) + check.is_true(v1 <= v2) + check.is_true(v1 >= v2) + check.is_false(v1 < v2) + check.is_false(v1 > v2) + check.is_false(v3 > v4) + end) - test.case("Prerelease version comparisons", function() - local v1 = Semver.parse("1.2.3-alpha.1"):unwrap() - local v2 = Semver.parse("1.2.3-alpha.2"):unwrap() - local v3 = Semver.parse("1.2.3-beta.1"):unwrap() - local v4 = Semver.parse("1.2.3"):unwrap() - local v5 = Semver.parse("1.2.3-rc.1"):unwrap() - local v6 = Semver.parse("1.2.3-rc.2"):unwrap() + test.case("Prerelease version comparisons", function() + local v1 = Semver.parse("1.2.3-alpha.1"):unwrap() + local v2 = Semver.parse("1.2.3-alpha.2"):unwrap() + local v3 = Semver.parse("1.2.3-beta.1"):unwrap() + local v4 = Semver.parse("1.2.3"):unwrap() + local v5 = Semver.parse("1.2.3-rc.1"):unwrap() + local v6 = Semver.parse("1.2.3-rc.2"):unwrap() - check.is_true(v1 < v2) - check.is_true(v2 < v3) - check.is_true(v3 < v4) - check.is_true(v3 < v5) - check.is_true(v5 < v6) - check.is_true(v6 < v4) - check.is_false(v4 < v1) - check.is_true(v4 > v3) - end) + check.is_true(v1 < v2) + check.is_true(v2 < v3) + check.is_true(v3 < v4) + check.is_true(v3 < v5) + check.is_true(v5 < v6) + check.is_true(v6 < v4) + check.is_false(v4 < v1) + check.is_true(v4 > v3) + end) - test.case("Build metadata comparisons", function() - local v1 = Semver.parse("1.2.3+build.1"):unwrap() - local v2 = Semver.parse("1.2.3+build.2"):unwrap() - local v3 = Semver.parse("1.2.3+build.123"):unwrap() - local v4 = Semver.parse("1.2.3+20230615"):unwrap() - local v5 = Semver.parse("1.2.3+exp.sha.5114f85"):unwrap() + test.case("Build metadata comparisons", function() + local v1 = Semver.parse("1.2.3+build.1"):unwrap() + local v2 = Semver.parse("1.2.3+build.2"):unwrap() + local v3 = Semver.parse("1.2.3+build.123"):unwrap() + local v4 = Semver.parse("1.2.3+20230615"):unwrap() + local v5 = Semver.parse("1.2.3+exp.sha.5114f85"):unwrap() - -- Build metadata should be ignored in comparisons - check.is_true(v1 == v2) - check.is_true(v2 == v3) - check.is_true(v3 == v4) - check.is_true(v4 == v5) - check.is_false(v1 < v2) - check.is_false(v2 > v3) - check.is_false(v4 > v5) - end) + -- Build metadata should be ignored in comparisons + check.is_true(v1 == v2) + check.is_true(v2 == v3) + check.is_true(v3 == v4) + check.is_true(v4 == v5) + check.is_false(v1 < v2) + check.is_false(v2 > v3) + check.is_false(v4 > v5) + end) - test.case("Complex version comparisons", function() - local v1 = Semver.parse("2.0.0-alpha.1+build.123"):unwrap() - local v2 = Semver.parse("2.0.0-beta.1+build.123"):unwrap() - local v3 = Semver.parse("2.0.0+build.123"):unwrap() - local v4 = Semver.parse("2.1.0-alpha.1"):unwrap() - local v5 = Semver.parse("2.1.0"):unwrap() - local v6 = Semver.parse("2.1.0-rc.1+build.999"):unwrap() - local v7 = Semver.parse("2.1.1-alpha.1+sha.xyz"):unwrap() + test.case("Complex version comparisons", function() + local v1 = Semver.parse("2.0.0-alpha.1+build.123"):unwrap() + local v2 = Semver.parse("2.0.0-beta.1+build.123"):unwrap() + local v3 = Semver.parse("2.0.0+build.123"):unwrap() + local v4 = Semver.parse("2.1.0-alpha.1"):unwrap() + local v5 = Semver.parse("2.1.0"):unwrap() + local v6 = Semver.parse("2.1.0-rc.1+build.999"):unwrap() + local v7 = Semver.parse("2.1.1-alpha.1+sha.xyz"):unwrap() - check.is_true(v1 < v2) - check.is_true(v2 < v3) - check.is_true(v3 < v4) - check.is_true(v4 < v5) - check.is_true(v4 < v6) - check.is_true(v6 < v5) - check.is_true(v5 < v7) - check.is_false(v5 < v1) - check.is_false(v7 < v6) - end) - end) + check.is_true(v1 < v2) + check.is_true(v2 < v3) + check.is_true(v3 < v4) + check.is_true(v4 < v5) + check.is_true(v4 < v6) + check.is_true(v6 < v5) + check.is_true(v5 < v7) + check.is_false(v5 < v1) + check.is_false(v7 < v6) + end) + end) end