mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	 b3686b1597
			
		
	
	b3686b1597
	
	
	
		
			
			* tv_to_argv: error when cmd is not executable Callers always assume that emsg was emitted: - https://github.com/neovim/neovim/blob/57fbf288/src/nvim/eval.c#L12509 - https://github.com/neovim/neovim/blob/57fbf288/src/nvim/eval.c#L17923 - https://github.com/neovim/neovim/blob/57fbf288/src/nvim/eval.c#L18202 * test/functional/provider: display reason from missing_provider * provider#node#Detect: skip / handle non-existing node executable
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| local helpers = require('test.functional.helpers')(after_each)
 | |
| local eq, clear = helpers.eq, helpers.clear
 | |
| local missing_provider = helpers.missing_provider
 | |
| local command = helpers.command
 | |
| local write_file = helpers.write_file
 | |
| local eval = helpers.eval
 | |
| local retry = helpers.retry
 | |
| 
 | |
| do
 | |
|   clear()
 | |
|   local reason = missing_provider('node')
 | |
|   if reason then
 | |
|     pending(string.format("Missing nodejs host, or nodejs version is too old (%s)", reason), function() end)
 | |
|     return
 | |
|   end
 | |
| end
 | |
| 
 | |
| before_each(function()
 | |
|   clear()
 | |
| end)
 | |
| 
 | |
| describe('nodejs host', function()
 | |
|   teardown(function ()
 | |
|     os.remove('Xtest-nodejs-hello.js')
 | |
|     os.remove('Xtest-nodejs-hello-plugin.js')
 | |
|   end)
 | |
| 
 | |
|   it('works', function()
 | |
|     local fname = 'Xtest-nodejs-hello.js'
 | |
|     write_file(fname, [[
 | |
|       const neovim = require('neovim');
 | |
|       const nvim = neovim.attach({socket: process.env.NVIM_LISTEN_ADDRESS});
 | |
|       nvim.command('let g:job_out = "hello"');
 | |
|     ]])
 | |
|     command('let g:job_id = jobstart(["node", "'..fname..'"])')
 | |
|     retry(nil, 3000, function() eq('hello', eval('g:job_out')) end)
 | |
|   end)
 | |
|   it('plugin works', function()
 | |
|     local fname = 'Xtest-nodejs-hello-plugin.js'
 | |
|     write_file(fname, [[
 | |
|       const neovim = require('neovim');
 | |
|       const nvim = neovim.attach({socket: process.env.NVIM_LISTEN_ADDRESS});
 | |
| 
 | |
|       class TestPlugin {
 | |
|         hello() {
 | |
|           this.nvim.command('let g:job_out = "hello-plugin"');
 | |
|         }
 | |
|       }
 | |
|       const PluginClass = neovim.Plugin(TestPlugin);
 | |
|       const plugin = new neovim.NvimPlugin(null, PluginClass, nvim);
 | |
|       plugin.instance.hello();
 | |
|     ]])
 | |
|     command('let g:job_id = jobstart(["node", "'..fname..'"])')
 | |
|     retry(nil, 3000, function() eq('hello-plugin', eval('g:job_out')) end)
 | |
|   end)
 | |
| end)
 |