You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
zeus/website/backend/lor/spec/trie/strict_route_spec.lua

74 lines
1.7 KiB
Lua

setup(function()
_G.LOR_FRAMEWORK_DEBUG = false
end)
teardown(function()
end)
before_each(function()
Trie = _G.Trie
t = Trie:new()
t1 = Trie:new()
t2 = Trie:new()
end)
after_each(function()
Trie = nil
t = nil
t1 = nil
t2 = nil
_debug = nil
end)
describe("strict route: ", function()
it("should match if strict route is false.", function()
local t = Trie:new({
strict_route = false -- default value is true
})
local n1 = t:add_node("/a/b")
local m1 = t:match("/a/b/")
assert.are.same(n1, m1.node)
local m2 = t:match("/a/b")
assert.are.same(n1, m2.node)
end)
it("should not match if strict route is true.", function()
local t = Trie:new({
strict_route = true -- default value is true
})
local n1 = t:add_node("/a/b")
local m1 = t:match("/a/b")
assert.are.same(n1, m1.node)
local m2 = t:match("/a/b/")
assert.is.falsy(m2.node)
end)
it("should match if strict route is false and the exact route is not given.", function()
local t = Trie:new({
strict_route = false -- default value is true
})
local n1 = t:add_node("/a/b")
local m1 = t:match("/a/b/")
assert.are.same(n1, m1.node)
end)
it("should not match if strict route is true and the exact route is not given.", function()
local t = Trie:new({
strict_route = true -- default value is true
})
local n1 = t:add_node("/a/b")
local m1 = t:match("/a/b/")
assert.is.falsy(m1.node)
assert.is.equals(nil, m1.node)
end)
end)