mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	 052498ed42
			
		
	
	052498ed42
	
	
	
		
			
			Specifically, functions that are run in the context of the test runner are put in module `test/testutil.lua` while the functions that are run in the context of the test session are put in `test/functional/testnvim.lua`. Closes https://github.com/neovim/neovim/issues/27004.
		
			
				
	
	
		
			40 lines
		
	
	
		
			1017 B
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			1017 B
		
	
	
	
		
			Lua
		
	
	
	
	
	
| local t = require('test.testutil')
 | |
| local n = require('test.functional.testnvim')()
 | |
| 
 | |
| local eq = t.eq
 | |
| local exec_lua = n.exec_lua
 | |
| local pcall_err = t.pcall_err
 | |
| local matches = t.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)
 |