12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- local a = require "plenary.async_lib.tests"
- a.describe("plugin-loader", function()
- local plugins = require "lvim.plugins"
- local loader = require "lvim.plugin-loader"
- pcall(function()
- lvim.log.level = "debug"
- package.loaded["packer.log"] = nil
- package.loaded["lvim.core.log"] = nil
- end)
- 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 ++once lua _G.verify_sha()]]
- loader.load_snapshot()
- local ret = vim.wait(30 * 10 * 1000, function()
- return _G.completed == true
- end, 200)
- assert.True(ret)
- end)
- end)
|