chore(tests): include basic stringification tests

This commit is contained in:
Erica Marigold 2024-11-22 05:51:30 +00:00
parent 5d76e8c97d
commit 5cdd743344

View file

@ -9,7 +9,54 @@ local Semver = require("../lib")
return function()
test.suite("Stringification tests", function()
test.case("A parsed version when stringified should not change", function()
test.case("A version constructed with new() when stringified should match expected string", function()
local versionMap: { [string]: Semver.Version } = {
["1.2.3"] = { major = 1, minor = 2, patch = 3, prerelease = Option.None, buildMetadata = Option.None },
["1.0.0-alpha"] = {
major = 1,
minor = 0,
patch = 0,
prerelease = Option.Some({ type = "alpha" :: Semver.PreleaseType, ordinal = Option.None }),
buildMetadata = Option.None,
},
["2.3.4-beta.1"] = {
major = 2,
minor = 3,
patch = 4,
prerelease = Option.Some({
type = "beta" :: Semver.PreleaseType,
ordinal = Option.Some(1),
}),
buildMetadata = Option.None,
},
["3.0.0-rc.1+build.123"] = {
major = 3,
minor = 0,
patch = 0,
prerelease = Option.Some({
type = "rc" :: Semver.PreleaseType,
ordinal = Option.Some(1),
}),
buildMetadata = Option.Some("build.123"),
},
["4.5.6+sha.xyz"] = {
major = 4,
minor = 5,
patch = 6,
prerelease = Option.None,
buildMetadata = Option.Some("sha.xyz"),
},
}
for expectedString, version in versionMap do
local constructed = Semver.new(version :: Semver.Version)
local stringified = tostring(constructed)
check.equal(stringified, expectedString)
end
end)
test.case("A parsed version when stringified should not change in roundtrip", function()
local versions = {
"1.2.3",
"1.0.0-alpha",