| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 | 
							- 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)
 
 
  |