diff options
| author | William Boman <william@redwill.se> | 2022-04-30 15:44:37 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-04-30 15:44:37 +0200 |
| commit | cd4dac02a3bb5431979b0812a80dadf6ee088f5e (patch) | |
| tree | 17eef2c3f9a11818accc93e98029ded1baf92998 /tests | |
| parent | Update CUSTOM_SERVERS.md (diff) | |
| download | mason-cd4dac02a3bb5431979b0812a80dadf6ee088f5e.tar mason-cd4dac02a3bb5431979b0812a80dadf6ee088f5e.tar.gz mason-cd4dac02a3bb5431979b0812a80dadf6ee088f5e.tar.bz2 mason-cd4dac02a3bb5431979b0812a80dadf6ee088f5e.tar.lz mason-cd4dac02a3bb5431979b0812a80dadf6ee088f5e.tar.xz mason-cd4dac02a3bb5431979b0812a80dadf6ee088f5e.tar.zst mason-cd4dac02a3bb5431979b0812a80dadf6ee088f5e.zip | |
feat: allow excluding servers from automatic installation (#643)
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/helpers/lua/test_helpers.lua | 5 | ||||
| -rw-r--r-- | tests/setup/automatic_installation_exclude_spec.lua | 44 | ||||
| -rw-r--r-- | tests/setup/automatic_installation_spec.lua | 43 | ||||
| -rw-r--r-- | tests/setup/ensure_installed_spec.lua | 39 |
4 files changed, 129 insertions, 2 deletions
diff --git a/tests/helpers/lua/test_helpers.lua b/tests/helpers/lua/test_helpers.lua index 206337e1..a9a2426f 100644 --- a/tests/helpers/lua/test_helpers.lua +++ b/tests/helpers/lua/test_helpers.lua @@ -32,10 +32,11 @@ mockx = { } function ServerGenerator(opts) + local name = opts.name or "dummy" return server.Server:new(vim.tbl_deep_extend("force", { - name = "dummy", + name = name, languages = { "dummylang" }, - root_dir = server.get_server_root_path "dummy", + root_dir = server.get_server_root_path(name), homepage = "https://dummylang.org", async = true, installer = function(ctx) diff --git a/tests/setup/automatic_installation_exclude_spec.lua b/tests/setup/automatic_installation_exclude_spec.lua new file mode 100644 index 00000000..bfa5c81b --- /dev/null +++ b/tests/setup/automatic_installation_exclude_spec.lua @@ -0,0 +1,44 @@ +local spy = require "luassert.spy" +local lspconfig = require "lspconfig" +local configs = require "lspconfig.configs" +local servers = require "nvim-lsp-installer.servers" + +describe("automatic_installation_exclude", function() + it( + "should install servers set up via lspconfig", + async_test(function() + local server1_installer_spy = spy.new() + local server2_installer_spy = spy.new() + local server1 = ServerGenerator { + name = "automatic_installation_exclude1", + installer = function() + server1_installer_spy() + end, + } + local server2 = ServerGenerator { + name = "automatic_installation_exclude2", + installer = function() + server2_installer_spy() + end, + } + + servers.register(server1) + servers.register(server2) + + configs[server1.name] = { default_config = {} } + configs[server2.name] = { default_config = {} } + + require("nvim-lsp-installer").setup { + automatic_installation = { exclude = { server2.name } }, + } + + lspconfig[server1.name].setup {} + lspconfig[server2.name].setup {} + + assert.wait_for(function() + assert.spy(server1_installer_spy).was_called(1) + assert.spy(server2_installer_spy).was_called(0) + end) + end) + ) +end) diff --git a/tests/setup/automatic_installation_spec.lua b/tests/setup/automatic_installation_spec.lua new file mode 100644 index 00000000..ed35a63a --- /dev/null +++ b/tests/setup/automatic_installation_spec.lua @@ -0,0 +1,43 @@ +local spy = require "luassert.spy" +local lspconfig = require "lspconfig" +local configs = require "lspconfig.configs" +local servers = require "nvim-lsp-installer.servers" + +describe("automatic_installation", function() + it( + "should install servers set up via lspconfig", + async_test(function() + local server1_installer_spy = spy.new() + local server2_installer_spy = spy.new() + local server1 = ServerGenerator { + name = "automatic_installation1", + installer = function() + server1_installer_spy() + end, + } + local server2 = ServerGenerator { + name = "automatic_installation2", + installer = function() + server2_installer_spy() + end, + } + + servers.register(server1) + servers.register(server2) + + configs[server1.name] = { default_config = {} } + configs[server2.name] = { default_config = {} } + + require("nvim-lsp-installer").setup { + automatic_installation = true, + } + + lspconfig[server1.name].setup {} + + assert.wait_for(function() + assert.spy(server1_installer_spy).was_called(1) + assert.spy(server2_installer_spy).was_called(0) + end) + end) + ) +end) diff --git a/tests/setup/ensure_installed_spec.lua b/tests/setup/ensure_installed_spec.lua new file mode 100644 index 00000000..19bb1c8e --- /dev/null +++ b/tests/setup/ensure_installed_spec.lua @@ -0,0 +1,39 @@ +local spy = require "luassert.spy" +local configs = require "lspconfig.configs" +local servers = require "nvim-lsp-installer.servers" + +describe("ensure_installed", function() + it( + "should install servers", + async_test(function() + local server1_installer_spy = spy.new() + local server2_installer_spy = spy.new() + local server1 = ServerGenerator { + name = "ensure_installed1", + installer = function() + server1_installer_spy() + end, + } + local server2 = ServerGenerator { + name = "ensure_installed2", + installer = function() + server2_installer_spy() + end, + } + + servers.register(server1) + servers.register(server2) + + configs[server1.name] = { default_config = {} } + configs[server2.name] = { default_config = {} } + + require("nvim-lsp-installer").setup { + ensure_installed = { server1.name, server2.name }, + } + assert.wait_for(function() + assert.spy(server1_installer_spy).was_called(1) + assert.spy(server2_installer_spy).was_called(1) + end) + end) + ) +end) |
