mirror of
https://github.com/TangentFoxy/semver.lua.git
synced 2025-07-28 02:52:21 +00:00
69 lines
1.8 KiB
Lua
69 lines
1.8 KiB
Lua
local v = require 'semver'
|
|
|
|
local function checkVersion(ver, major, minor, patch)
|
|
assert_equal(major, ver.major)
|
|
assert_equal(minor, ver.minor)
|
|
assert_equal(patch, ver.patch)
|
|
end
|
|
|
|
context('semver', function()
|
|
|
|
context('creation', function()
|
|
|
|
context('from numbers', function()
|
|
it('parses 3 numbers correctly', function()
|
|
checkVersion(v(1,2,3), 1,2,3)
|
|
end)
|
|
|
|
it('parses 2 numbers correctly', function()
|
|
checkVersion(v(1,2), 1,2,0)
|
|
end)
|
|
|
|
it('parses 1 number correctly', function()
|
|
checkVersion(v(1), 1,0,0)
|
|
end)
|
|
end)
|
|
|
|
describe("from strings", function()
|
|
test("1.2.3", function()
|
|
checkVersion( v'1.2.3', 1,2,3)
|
|
end)
|
|
test("10.20.123", function()
|
|
checkVersion( v'10.20.123', 10,20,123)
|
|
end)
|
|
test("2.0", function()
|
|
checkVersion( v'2.0', 2,0,0)
|
|
end)
|
|
test("5", function()
|
|
checkVersion( v'5', 5,0,0)
|
|
end)
|
|
end)
|
|
|
|
describe('errors are thrown in', function()
|
|
test('no parameters are passed', function()
|
|
assert_error(function() v() end)
|
|
end)
|
|
test('negative numbers', function()
|
|
assert_error(function() v(-1, 0, 0) end)
|
|
assert_error(function() v( 0,-1, 0) end)
|
|
assert_error(function() v( 0, 0,-1) end)
|
|
end)
|
|
test('floats', function()
|
|
assert_error(function() v(.1, 0, 0) end)
|
|
assert_error(function() v( 0,.1, 0) end)
|
|
assert_error(function() v( 0, 0,.1) end)
|
|
end)
|
|
test('empty string', function()
|
|
assert_error(function() v("") end)
|
|
end)
|
|
test('garbage at the beginning of the string', function()
|
|
assert_error(function() v("foobar1.2.3") end)
|
|
end)
|
|
test('garbage at the end of the string', function()
|
|
assert_error(function() v("1.2.3foobar") end)
|
|
end)
|
|
end)
|
|
|
|
end)
|
|
end)
|