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)