mirror of
https://github.com/neovim/neovim.git
synced 2026-04-19 22:10:45 +00:00
test: reorg #15698
Problem:
Subdirectories like "visual", "insert", "normal" encourage people to
separate *related* tests for no good reason. Typically the _mode_ is
not the relevant topic of a test (and when it is, _then_ create
an appropriate describe() or it()).
Solution:
- Delete the various `test/functional/<mode>/` subdirectories, move
their tests to more meaningful topics.
- Rename `…/normal/` to `…/editor/`.
- Move or merge `…/visual/*` and `…/insert/*` tests into here where
appropriate.
- Rename `…/eval/` to `…/vimscript/`.
- Move `…/viml/*` into here also.
* test(reorg): insert/* => editor/mode_insert_spec.lua
* test(reorg): cmdline/* => editor/mode_cmdline_spec.lua
* test(reorg): eval core tests => eval_spec.lua
This commit is contained in:
40
test/functional/vimscript/exepath_spec.lua
Normal file
40
test/functional/vimscript/exepath_spec.lua
Normal file
@@ -0,0 +1,40 @@
|
||||
local helpers = require('test.functional.helpers')(after_each)
|
||||
local eq, clear, call, iswin =
|
||||
helpers.eq, helpers.clear, helpers.call, helpers.iswin
|
||||
local command = helpers.command
|
||||
local exc_exec = helpers.exc_exec
|
||||
local matches = helpers.matches
|
||||
|
||||
describe('exepath()', function()
|
||||
before_each(clear)
|
||||
|
||||
it('returns 1 for commands in $PATH', function()
|
||||
local exe = iswin() and 'ping' or 'ls'
|
||||
local ext_pat = iswin() and '%.EXE$' or '$'
|
||||
matches(exe .. ext_pat, call('exepath', exe))
|
||||
command('let $PATH = fnamemodify("./test/functional/fixtures/bin", ":p")')
|
||||
ext_pat = iswin() and '%.CMD$' or '$'
|
||||
matches('null' .. ext_pat, call('exepath', 'null'))
|
||||
matches('true' .. ext_pat, call('exepath', 'true'))
|
||||
matches('false' .. ext_pat, call('exepath', 'false'))
|
||||
end)
|
||||
|
||||
it('fails for invalid values', function()
|
||||
for _, input in ipairs({'""', 'v:null', 'v:true', 'v:false', '{}', '[]'}) do
|
||||
eq('Vim(call):E928: String required', exc_exec('call exepath('..input..')'))
|
||||
end
|
||||
command('let $PATH = fnamemodify("./test/functional/fixtures/bin", ":p")')
|
||||
for _, input in ipairs({'v:null', 'v:true', 'v:false'}) do
|
||||
eq('Vim(call):E928: String required', exc_exec('call exepath('..input..')'))
|
||||
end
|
||||
end)
|
||||
|
||||
if iswin() then
|
||||
it('append extension if omitted', function()
|
||||
local filename = 'cmd'
|
||||
local pathext = '.exe'
|
||||
clear({env={PATHEXT=pathext}})
|
||||
eq(call('exepath', filename..pathext), call('exepath', filename))
|
||||
end)
|
||||
end
|
||||
end)
|
||||
Reference in New Issue
Block a user