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.
		
			
				
	
	
		
			64 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| local t = require('test.testutil')
 | |
| local n = require('test.functional.testnvim')()
 | |
| 
 | |
| local clear = n.clear
 | |
| local command = n.command
 | |
| local eq = t.eq
 | |
| local eval = n.eval
 | |
| local feed = n.feed
 | |
| local write_file = t.write_file
 | |
| 
 | |
| describe('ccomplete#Complete', function()
 | |
|   setup(function()
 | |
|     -- Realistic tags generated from neovim source tree using `ctags -R *`
 | |
|     write_file(
 | |
|       'Xtags',
 | |
|       [[
 | |
| augroup_del	src/nvim/autocmd.c	/^void augroup_del(char *name, bool stupid_legacy_mode)$/;"	f	typeref:typename:void
 | |
| augroup_exists	src/nvim/autocmd.c	/^bool augroup_exists(const char *name)$/;"	f	typeref:typename:bool
 | |
| augroup_find	src/nvim/autocmd.c	/^int augroup_find(const char *name)$/;"	f	typeref:typename:int
 | |
| aupat_get_buflocal_nr	src/nvim/autocmd.c	/^int aupat_get_buflocal_nr(char *pat, int patlen)$/;"	f	typeref:typename:int
 | |
| aupat_is_buflocal	src/nvim/autocmd.c	/^bool aupat_is_buflocal(char *pat, int patlen)$/;"	f	typeref:typename:bool
 | |
| expand_get_augroup_name	src/nvim/autocmd.c	/^char *expand_get_augroup_name(expand_T *xp, int idx)$/;"	f	typeref:typename:char *
 | |
| expand_get_event_name	src/nvim/autocmd.c	/^char *expand_get_event_name(expand_T *xp, int idx)$/;"	f	typeref:typename:char *
 | |
| ]]
 | |
|     )
 | |
|   end)
 | |
| 
 | |
|   before_each(function()
 | |
|     clear()
 | |
|     command('set tags=Xtags')
 | |
|   end)
 | |
| 
 | |
|   teardown(function()
 | |
|     os.remove('Xtags')
 | |
|   end)
 | |
| 
 | |
|   it('can complete from Xtags', function()
 | |
|     local completed = eval('ccomplete#Complete(0, "a")')
 | |
|     eq(5, #completed)
 | |
|     eq('augroup_del(', completed[1].word)
 | |
|     eq('f', completed[1].kind)
 | |
| 
 | |
|     local aupat = eval('ccomplete#Complete(0, "aupat")')
 | |
|     eq(2, #aupat)
 | |
|     eq('aupat_get_buflocal_nr(', aupat[1].word)
 | |
|     eq('f', aupat[1].kind)
 | |
|   end)
 | |
| 
 | |
|   it('does not error when returning no matches', function()
 | |
|     local completed = eval('ccomplete#Complete(0, "doesnotmatch")')
 | |
|     eq({}, completed)
 | |
|   end)
 | |
| 
 | |
|   it('can find the beginning of a word for C', function()
 | |
|     command('set filetype=c')
 | |
|     feed('i  int something = augroup')
 | |
|     local result = eval('ccomplete#Complete(1, "")')
 | |
|     eq(#'  int something = ', result)
 | |
| 
 | |
|     local completed = eval('ccomplete#Complete(0, "augroup")')
 | |
|     eq(3, #completed)
 | |
|   end)
 | |
| end)
 |