chore(tests): migrate cmp test to use official frktest package

This commit is contained in:
Erica Marigold 2024-11-12 20:22:17 +05:30 committed by GitHub
parent c6e1776c87
commit 7311c439e3

View file

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