chore(tests): include basic stringification tests

This commit is contained in:
Erica Marigold 2024-11-22 05:51:30 +00:00
parent 4a47130b79
commit 12cad2ff0b
Signed by: DevComp
GPG key ID: 429EF1C337871656

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",