Skip to content

Commit

Permalink
feat(tostring) add oxford comma, push test coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
Tieske committed Jan 10, 2019
1 parent 1cf293c commit 9dcf3c9
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 10 deletions.
34 changes: 26 additions & 8 deletions spec/tests.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@ local version = require("version")
local range = version.range
local set = version.set

local ok, err
------------------------------------------
-- strict and relaxed parsing
------------------------------------------
local lua, err = version("Lua 5.3")
local lua
lua, err = version("Lua 5.3")
assert(tostring(lua) == "5.3")

lua, err = version.strict("Lua 5.3")
Expand Down Expand Up @@ -72,7 +74,7 @@ assert(err:find("cannot compare a 'version' to a 'table'", 1, true) or -- Lua 5
err:find("attempt to compare two table values", 1, true)) -- Lua 5.1

local sv1 = version("1.2.0.3") -- too many elements
local ok, err = sv1:semver("1.2.2")
ok, err = sv1:semver("1.2.2")
print(ok, err)
assert(not ok)
assert(err == "Version has too many elements (semver max 3)")
Expand All @@ -95,7 +97,8 @@ assert(not sv3:semver("2"))
------------------------------------------
-- Range object
------------------------------------------
local r1, err = range("1.2", "xxx")
local r1
r1, err = range("1.2", "xxx")
print(r1, err)
assert(r1 == nil)
assert(err == "Not a valid version element: 'xxx'")
Expand All @@ -111,7 +114,8 @@ assert(r1 == nil)
assert(err == "FROM version must be less than or equal to the TO version")

r1 = range("1.2", "1.4.0")
local r, err = r1:matches("xxx")
local r
r, err = r1:matches("xxx")
print(r, err)
assert(r == nil)
assert(err == "Not a valid version element: 'xxx'")
Expand All @@ -130,7 +134,8 @@ assert(tostring(r1) == "1.2 to 1.4.0")
------------------------------------------
-- Set object
------------------------------------------
local s1, err = set("xxx")
local s1
s1, err = set("xxx")
print(s1, err)
assert(s1 == nil)
assert(err == "Not a valid version element: 'xxx'")
Expand All @@ -145,8 +150,8 @@ print(s1, err)
assert(s1 == nil)
assert(err == "Not a valid version element: 'Not a valid version element: 'xxx''")

s1 = set("1.2.0", "2.4.3"):allowed("3.5", "3.9.9"):allowed("5.0"):disallowed("1.3", "1.4"):disallowed("3.6")
local ok, err = s1:matches("xxx")
s1 = set("1.2.0", "2.4.3"):allowed("3.5", "3.9.9"):allowed("5.0"):disallowed("1.3", "1.4"):disallowed("3.6"):disallowed("3.9.8")
ok, err = s1:matches("xxx")
print(ok, err)
assert(ok == nil)
assert(err == "Not a valid version element: 'xxx'")
Expand All @@ -164,7 +169,7 @@ assert(not s1:matches("1.3"))
assert(not s1:matches("1.3.5"))
assert(not s1:matches("1.4"))
assert(not s1:matches("3.6"))
assert(tostring(s1) == "1.2.0 to 2.4.3, 3.5 to 3.9.9 and 5.0, but not 1.3 to 1.4 and 3.6")
assert(tostring(s1) == "1.2.0 to 2.4.3, 3.5 to 3.9.9, and 5.0, but not 1.3 to 1.4, 3.6, and 3.9.8")

local s2 = set("1.2.0")
assert(tostring(s2) == "1.2.0")
Expand All @@ -173,7 +178,20 @@ assert(tostring(s2) == "1.2.0, but not 9.9")

local s3 = set("1.2.0", "2.4.3")
assert(tostring(s3) == "1.2.0 to 2.4.3")
s3:allowed(range("2.5","4"))
s3:disallowed(range("3.0", "3.9"))
print(tostring(s3))
assert(tostring(s3) == "1.2.0 to 2.4.3, and 2.5 to 4, but not 3.0 to 3.9")

r = range("1.0", "1.3")
ok, err = pcall(function() s3:allowed(r, "1.4") end)
assert(ok == false)
assert(err:find("First parameter was a range, second must be nil.", 1, true))

r = range("1.0", "1.3")
ok, err = pcall(function() s3:disallowed(r, "1.3") end)
assert(ok == false)
assert(err:find("First parameter was a range, second must be nil.", 1, true))


print ("All tests successful")
4 changes: 2 additions & 2 deletions src/version.lua
Original file line number Diff line number Diff line change
Expand Up @@ -252,7 +252,7 @@ local mt_set = {
for i = 2, #self.ok - 1 do
ok = ok .. ", " ..tostring(self.ok[i])
end
ok = ok .. " and " .. tostring(self.ok[#self.ok])
ok = ok .. ", and " .. tostring(self.ok[#self.ok])
end
if #self.nok == 1 then
nok = tostring(self.nok[1])
Expand All @@ -261,7 +261,7 @@ local mt_set = {
for i = 2, #self.nok - 1 do
nok = nok .. ", " ..tostring(self.nok[i])
end
nok = nok .. " and " .. tostring(self.nok[#self.nok])
nok = nok .. ", and " .. tostring(self.nok[#self.nok])
end
if ok and nok then
return ok .. ", but not " .. nok
Expand Down

0 comments on commit 9dcf3c9

Please sign in to comment.