mirror of
https://github.com/folke/lazy.nvim.git
synced 2025-04-18 20:36:45 +00:00
fix(util): made Util.lsmod
more robust. See #298
This commit is contained in:
parent
f36c7cb0dc
commit
953c2791d8
3 changed files with 52 additions and 15 deletions
|
@ -10,31 +10,68 @@ describe("util", function()
|
|||
it("lsmod lists all mods in dir", function()
|
||||
local tests = {
|
||||
{
|
||||
root = "lua/foo",
|
||||
mod = "foo",
|
||||
files = { "lua/foo/one.lua", "lua/foo/two.lua", "lua/foo/init.lua" },
|
||||
mods = { "foo", "foo.one", "foo.two" },
|
||||
mods = { "foo.one", "foo.two", "foo" },
|
||||
},
|
||||
{
|
||||
root = "lua/foo",
|
||||
mod = "foo",
|
||||
files = { "lua/foo/one.lua", "lua/foo/two.lua", "lua/foo.lua" },
|
||||
mods = { "foo", "foo.one", "foo.two" },
|
||||
mods = { "foo.one", "foo.two", "foo" },
|
||||
},
|
||||
{
|
||||
root = "lua/foo",
|
||||
mod = "foo",
|
||||
files = { "lua/foo/one.lua", "lua/foo/two.lua" },
|
||||
mods = { "foo.one", "foo.two" },
|
||||
},
|
||||
{
|
||||
root = "lua/load-plugins",
|
||||
mod = "load-plugins",
|
||||
files = { "lua/load-plugins.lua" },
|
||||
mods = { "load-plugins" },
|
||||
},
|
||||
}
|
||||
|
||||
vim.opt.rtp:append(Helpers.path(""))
|
||||
for _, test in ipairs(tests) do
|
||||
Cache.cache = {}
|
||||
table.sort(test.mods)
|
||||
for t, test in ipairs(tests) do
|
||||
local expected = vim.deepcopy(test.mods)
|
||||
table.sort(expected)
|
||||
Helpers.fs_rm("")
|
||||
Helpers.fs_create(test.files)
|
||||
local files = Helpers.fs_create(test.files)
|
||||
|
||||
-- test with empty cache
|
||||
Cache.cache = {}
|
||||
Cache.indexed = {}
|
||||
Cache.indexed_rtp = false
|
||||
local root = Cache.find_root(test.mod)
|
||||
assert(root, "no root found for " .. test.mod .. " (test " .. t .. ")")
|
||||
assert.same(Helpers.path(test.root), root)
|
||||
local mods = {}
|
||||
Util.lsmod("foo", function(modname, modpath)
|
||||
Util.lsmod(test.mod, function(modname, modpath)
|
||||
mods[#mods + 1] = modname
|
||||
end)
|
||||
table.sort(mods)
|
||||
assert.same(test.mods, mods)
|
||||
assert.same(expected, mods)
|
||||
|
||||
-- fill the cache
|
||||
Cache.cache = {}
|
||||
for i, file in ipairs(files) do
|
||||
Cache.cache[test.mods[i]] = { modpath = file }
|
||||
end
|
||||
Cache.indexed = {}
|
||||
Cache.indexed_rtp = false
|
||||
root = Cache.find_root(test.mod)
|
||||
assert(root, "no root found for " .. test.mod .. " (test " .. t .. ")")
|
||||
assert.same(Helpers.path(test.root), root)
|
||||
mods = {}
|
||||
Util.lsmod(test.mod, function(modname, modpath)
|
||||
mods[#mods + 1] = modname
|
||||
end)
|
||||
table.sort(mods)
|
||||
assert.same(expected, mods)
|
||||
end
|
||||
end)
|
||||
end)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue