diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/minimal_lsp.lua | 39 | ||||
| -rw-r--r-- | tests/specs/plugins_load_spec.lua | 39 | 
2 files changed, 23 insertions, 55 deletions
| diff --git a/tests/minimal_lsp.lua b/tests/minimal_lsp.lua index 01e814be..9515268f 100644 --- a/tests/minimal_lsp.lua +++ b/tests/minimal_lsp.lua @@ -13,25 +13,21 @@ local temp_dir = vim.loop.os_getenv "TEMP" or "/tmp"  vim.cmd("set packpath=" .. join_paths(temp_dir, "nvim", "site"))  local package_root = join_paths(temp_dir, "nvim", "site", "pack") -local install_path = join_paths(package_root, "packer", "start", "packer.nvim") -local compile_path = join_paths(install_path, "plugin", "packer_compiled.lua") +local plugins_dir = join_paths(package_root, "lazy", "opt") +local install_path = join_paths(package_root, "lazy.nvim")  -- Choose whether to use the executable that's managed by mason  local use_lsp_installer = true  local function load_plugins() -  require("packer").startup { -    { -      "wbthomason/packer.nvim", -      "neovim/nvim-lspconfig", -      "williamboman/mason-lspconfig.nvim", -      "williamboman/mason.nvim", -    }, -    config = { -      package_root = package_root, -      compile_path = compile_path, -    }, -  } +  vim.opt.rtp:prepend(install_path) +  require("lazy").setup({ +    "neovim/nvim-lspconfig", +    "williamboman/mason-lspconfig.nvim", +    "williamboman/mason.nvim", +  }, { +    root = plugins_dir, +  })  end  function _G.dump(...) @@ -98,12 +94,19 @@ _G.load_config = function()  end  if vim.fn.isdirectory(install_path) == 0 then -  vim.fn.system { "git", "clone", "https://github.com/wbthomason/packer.nvim", install_path } +  print "Installing lazy.nvim" +  vim.fn.system { +    "git", +    "clone", +    "--filter=blob:none", +    "--single-branch", +    "https://github.com/folke/lazy.nvim.git", +    install_path, +  }    load_plugins() -  require("packer").sync() -  vim.cmd [[autocmd User PackerComplete ++once lua load_config()]] +  vim.cmd [[autocmd User LazyDone ++once lua load_config()]]  else    load_plugins() -  require("packer").sync() +  require("lazy").sync()    _G.load_config()  end diff --git a/tests/specs/plugins_load_spec.lua b/tests/specs/plugins_load_spec.lua index 5cf1c2f5..37294c2e 100644 --- a/tests/specs/plugins_load_spec.lua +++ b/tests/specs/plugins_load_spec.lua @@ -6,16 +6,16 @@ a.describe("plugin-loader", function()    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() +    vim.go.loadplugins = true      loader.load { plugins, lvim.plugins }      -- TODO: maybe there's a way to avoid hard-coding the names of the modules?      local startup_plugins = { -      "packer", +      "lazy",      }      for _, plugin in ipairs(startup_plugins) do @@ -24,8 +24,6 @@ a.describe("plugin-loader", function()    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 = { @@ -38,37 +36,4 @@ a.describe("plugin-loader", function()        assert.truthy(package.loaded[plugin])      end    end) - -  pending("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 "unmatched 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) | 
