mirror of
https://github.com/LunarVim/LunarVim.git
synced 2024-09-21 11:05:08 +02:00
67 lines
2.1 KiB
Lua
67 lines
2.1 KiB
Lua
local a = require "plenary.async_lib.tests"
|
|
|
|
a.describe("plugin-loader", function()
|
|
local plugins = require "lvim.plugins"
|
|
local loader = require "lvim.plugin-loader"
|
|
|
|
a.it("should be able to load default packages without errors", function()
|
|
loader.load { plugins, lvim.plugins }
|
|
|
|
-- TODO: maybe there's a way to avoid hard-coding the names of the modules?
|
|
local startup_plugins = {
|
|
"packer",
|
|
}
|
|
|
|
for _, plugin in ipairs(startup_plugins) do
|
|
assert.truthy(package.loaded[plugin])
|
|
end
|
|
end)
|
|
|
|
a.it("should be able to load lsp packages without errors", function()
|
|
loader.load { plugins, lvim.plugins }
|
|
|
|
require("lvim.lsp").setup()
|
|
|
|
local lsp_packages = {
|
|
"lspconfig",
|
|
"nlspsettings",
|
|
"null-ls",
|
|
}
|
|
|
|
for _, plugin in ipairs(lsp_packages) do
|
|
assert.truthy(package.loaded[plugin])
|
|
end
|
|
end)
|
|
a.it("should be able to rollback plugins without errors", function()
|
|
local plugin = { name = "onedarker.nvim" }
|
|
plugin.path = vim.tbl_filter(function(package)
|
|
return package:match(plugin.name)
|
|
end, vim.api.nvim_list_runtime_paths())[1]
|
|
|
|
local get_current_sha = function(repo)
|
|
local res = vim.fn.system(string.format("git -C %s log -1 --pretty=%%h", repo)):gsub("\n", "")
|
|
return res
|
|
end
|
|
plugin.test_sha = "316b1c9"
|
|
_G.locked_sha = get_current_sha(plugin.path)
|
|
loader.load { plugins, lvim.plugins }
|
|
|
|
os.execute(string.format("git -C %s fetch --deepen 999 --quiet", plugin.path))
|
|
os.execute(string.format("git -C %s checkout %s --quiet", plugin.path, plugin.test_sha))
|
|
assert.equal(plugin.test_sha, get_current_sha(plugin.path))
|
|
_G.completed = false
|
|
_G.verify_sha = function()
|
|
if _G.locked_sha ~= get_current_sha(plugin.path) then
|
|
error "unmached results!"
|
|
else
|
|
_G.completed = true
|
|
end
|
|
end
|
|
vim.cmd [[autocmd User PackerComplete lua _G.verify_sha()]]
|
|
loader.sync_core_plugins()
|
|
local ret = vim.wait(30 * 10 * 1000, function()
|
|
return _G.completed == true
|
|
end, 200)
|
|
assert.True(ret)
|
|
end)
|
|
end)
|