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() return function()
test.suite("Stringification tests", 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 = { local versions = {
"1.2.3", "1.2.3",
"1.0.0-alpha", "1.0.0-alpha",