aboutsummaryrefslogtreecommitdiff
path: root/test/functional
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional')
-rw-r--r--test/functional/plugin/lsp_spec.lua30
1 files changed, 30 insertions, 0 deletions
diff --git a/test/functional/plugin/lsp_spec.lua b/test/functional/plugin/lsp_spec.lua
index f402ac7e8c..4863873699 100644
--- a/test/functional/plugin/lsp_spec.lua
+++ b/test/functional/plugin/lsp_spec.lua
@@ -6370,5 +6370,35 @@ describe('LSP', function()
)
end)
end)
+
+ it('validates config on attach', function()
+ local tmp1 = t.tmpname(true)
+ exec_lua(function()
+ vim.lsp.log._set_filename(fake_lsp_logfile)
+ end)
+
+ local function test_cfg(cfg, err)
+ exec_lua(function()
+ vim.lsp.config['foo'] = {}
+ vim.lsp.config('foo', cfg)
+ vim.lsp.enable('foo')
+ vim.cmd.edit(assert(tmp1))
+ vim.bo.filetype = 'foo'
+ end)
+
+ retry(nil, 1000, function()
+ assert_log(err, fake_lsp_logfile)
+ end)
+ end
+
+ test_cfg({
+ cmd = { 'lolling' },
+ }, 'cannot start foo due to config error: .* lolling is not executable')
+
+ test_cfg({
+ cmd = { 'cat' },
+ filetypes = true,
+ }, 'cannot start foo due to config error: .* filetypes: expected table, got boolean')
+ end)
end)
end)