aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorWilliam Boman <william@redwill.se>2022-07-17 23:18:24 +0200
committerGitHub <noreply@github.com>2022-07-17 23:18:24 +0200
commit00e5dac9faae7b40459d7770fcd63872c65b51d3 (patch)
treea3c0f4954c483c2f932eb293e166bf6bf397c56d /tests
parentfeat(ui): bring focus to the installation section when :LspInstall (#91) (diff)
downloadmason-00e5dac9faae7b40459d7770fcd63872c65b51d3.tar
mason-00e5dac9faae7b40459d7770fcd63872c65b51d3.tar.gz
mason-00e5dac9faae7b40459d7770fcd63872c65b51d3.tar.bz2
mason-00e5dac9faae7b40459d7770fcd63872c65b51d3.tar.lz
mason-00e5dac9faae7b40459d7770fcd63872c65b51d3.tar.xz
mason-00e5dac9faae7b40459d7770fcd63872c65b51d3.tar.zst
mason-00e5dac9faae7b40459d7770fcd63872c65b51d3.zip
docs: update mason-lspconfig.setup_handlers() docs & add some tests (#94)
Diffstat (limited to 'tests')
-rw-r--r--tests/mason-lspconfig/setup_spec.lua46
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/mason-lspconfig/setup_spec.lua b/tests/mason-lspconfig/setup_spec.lua
index 39795be4..28dbad40 100644
--- a/tests/mason-lspconfig/setup_spec.lua
+++ b/tests/mason-lspconfig/setup_spec.lua
@@ -1,4 +1,5 @@
local match = require "luassert.match"
+local stub = require "luassert.stub"
local spy = require "luassert.spy"
local Pkg = require "mason-core.package"
@@ -43,3 +44,48 @@ describe("mason-lspconfig setup", function()
})
end)
end)
+
+describe("mason-lspconfig setup_handlers", function()
+ server_mappings.lspconfig_to_package["dummylsp"] = "dummy"
+ server_mappings.package_to_lspconfig["dummy"] = "dummylsp"
+ filetype_mappings.dummylang = { "dummylsp" }
+
+ it("should call default handler", function()
+ stub(registry, "get_installed_package_names")
+ registry.get_installed_package_names.returns { "dummy" }
+ local default_handler = spy.new()
+
+ mason_lspconfig.setup_handlers { default_handler }
+
+ assert.spy(default_handler).was_called(1)
+ assert.spy(default_handler).was_called_with "dummylsp"
+ end)
+
+ it("should call dedicated handler", function()
+ stub(registry, "get_installed_package_names")
+ registry.get_installed_package_names.returns { "dummy" }
+ local dedicated_handler = spy.new()
+ local default_handler = spy.new()
+
+ mason_lspconfig.setup_handlers {
+ default_handler,
+ ["dummylsp"] = dedicated_handler,
+ }
+
+ assert.spy(default_handler).was_called(0)
+ assert.spy(dedicated_handler).was_called(1)
+ assert.spy(dedicated_handler).was_called_with "dummylsp"
+ end)
+
+ it("should print warning if registering handler for non-existent server name", function()
+ spy.on(vim, "notify")
+ mason_lspconfig.setup_handlers {
+ doesnt_exist_server = spy.new(),
+ }
+ assert.spy(vim.notify).was_called(1)
+ assert.spy(vim.notify).was_called_with(
+ "[mason.nvim] mason-lspconfig.setup_handlers: Received handler for unknown lspconfig server name: doesnt_exist_server.",
+ vim.log.levels.WARN
+ )
+ end)
+end)