chore(tests): migrate parse_valid to use official frktest package

Also removes `any` casts since https://github.com/itsfrank/frktest/issues/2 was resolved.
This commit is contained in:
Erica Marigold 2024-11-12 20:23:51 +05:30 committed by GitHub
parent 7311c439e3
commit fc9a8701f6

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,69 +7,66 @@ type Option<T> = Option.Option<T>
local Semver = require("../lib") local Semver = require("../lib")
-- FIXME: Any casts all over the place, because of frktest not being correctly typed
-- See https://github.com/itsfrank/frktest/issues/2
return function() return function()
test.suite("Basic tests", function() test.suite("Basic tests", function()
test.case("Semver creates valid version objects", function() test.case("Semver creates valid version objects", function()
local res = Semver.parse("1.2.3-beta.1") local res = Semver.parse("1.2.3-beta.1")
check.is_true(res:isOk()) check.is_true(res:isOk())
local version = res:unwrap() local version = res:unwrap()
check.equal(version.major, 1) check.equal(version.major, 1)
check.equal(version.minor, 2) check.equal(version.minor, 2)
check.equal(version.patch, 3) check.equal(version.patch, 3)
end) end)
test.case("Semver handles prerelease versions", function() test.case("Semver handles prerelease versions", function()
local res = Semver.parse("1.2.3-beta.1") local res = Semver.parse("1.2.3-beta.1")
check.is_true(res:isOk()) check.is_true(res:isOk())
local version = res:unwrap() local version = res:unwrap()
check.equal(version.major, 1) check.equal(version.major, 1)
check.equal(version.minor, 2) check.equal(version.minor, 2)
check.equal(version.patch, 3) check.equal(version.patch, 3)
check.table.equal( check.table.equal(
version.prerelease :: any, version.prerelease,
Option.Some({ Option.Some({
type = "beta", type = "beta",
ordinal = Option.Some(1), ordinal = Option.Some(1),
}) :: any })
) )
end) end)
test.case("Semver handles build metadata", function() test.case("Semver handles build metadata", function()
local res = Semver.parse("1.2.3+build.123") local res = Semver.parse("1.2.3+build.123")
check.is_true(res:isOk()) check.is_true(res:isOk())
local version = res:unwrap() local version = res:unwrap()
check.equal(version.major, 1) check.equal(version.major, 1)
check.equal(version.minor, 2) check.equal(version.minor, 2)
check.equal(version.patch, 3) check.equal(version.patch, 3)
check.table.equal(version.buildMetadata :: any, Option.Some("build.123") :: any) check.table.equal(version.buildMetadata, Option.Some("build.123"))
end) end)
test.case("Semver handles prerelease versions with build metadata", function() test.case("Semver handles prerelease versions with build metadata", function()
local res = Semver.parse("1.2.3-beta.1+build.123") local res = Semver.parse("1.2.3-beta.1+build.123")
check.is_true(res:isOk()) check.is_true(res:isOk())
local version = res:unwrap() local version = res:unwrap()
check.equal(version.major, 1) check.equal(version.major, 1)
check.equal(version.minor, 2) check.equal(version.minor, 2)
check.equal(version.patch, 3) check.equal(version.patch, 3)
check.table.equal( check.table.equal(
version.prerelease :: any, version.prerelease,
Option.Some({ Option.Some({
type = "beta", type = "beta",
ordinal = Option.Some(1), ordinal = Option.Some(1),
}) :: any })
) )
check.table.equal(version.buildMetadata :: any, Option.Some("build.123") :: any) check.table.equal(version.buildMetadata, Option.Some("build.123"))
end) end)
end) end)
end end