aboutsummaryrefslogtreecommitdiff
path: root/test/functional/plugin/lsp/handler_spec.lua
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/plugin/lsp/handler_spec.lua')
-rw-r--r--test/functional/plugin/lsp/handler_spec.lua29
1 files changed, 29 insertions, 0 deletions
diff --git a/test/functional/plugin/lsp/handler_spec.lua b/test/functional/plugin/lsp/handler_spec.lua
new file mode 100644
index 0000000000..3086c23fe8
--- /dev/null
+++ b/test/functional/plugin/lsp/handler_spec.lua
@@ -0,0 +1,29 @@
+local helpers = require('test.functional.helpers')(after_each)
+
+local eq = helpers.eq
+local exec_lua = helpers.exec_lua
+local pcall_err = helpers.pcall_err
+local matches = helpers.matches
+
+describe('lsp-handlers', function()
+ describe('vim.lsp._with_extend', function()
+ it('should return a table with the default keys', function()
+ eq({hello = 'world' }, exec_lua [[
+ return vim.lsp._with_extend('test', { hello = 'world' })
+ ]])
+ end)
+
+ it('should override with config keys', function()
+ eq({hello = 'universe', other = true}, exec_lua [[
+ return vim.lsp._with_extend('test', { other = true, hello = 'world' }, { hello = 'universe' })
+ ]])
+ end)
+
+ it('should not allow invalid keys', function()
+ matches(
+ '.*Invalid option for `test`.*',
+ pcall_err(exec_lua, "return vim.lsp._with_extend('test', { hello = 'world' }, { invalid = true })")
+ )
+ end)
+ end)
+end)