mirror of
https://github.com/neovim/neovim.git
synced 2025-09-06 11:28:22 +00:00
refactor: format test/*
This commit is contained in:
@@ -18,13 +18,12 @@ local pcall_err = helpers.pcall_err
|
||||
describe('context functions', function()
|
||||
local fname1 = 'Xtest-functional-eval-ctx1'
|
||||
local fname2 = 'Xtest-functional-eval-ctx2'
|
||||
local outofbounds =
|
||||
'Vim:E475: Invalid value for argument index: out of bounds'
|
||||
local outofbounds = 'Vim:E475: Invalid value for argument index: out of bounds'
|
||||
|
||||
before_each(function()
|
||||
clear()
|
||||
write_file(fname1, "1\n2\n3")
|
||||
write_file(fname2, "a\nb\nc")
|
||||
write_file(fname1, '1\n2\n3')
|
||||
write_file(fname2, 'a\nb\nc')
|
||||
end)
|
||||
|
||||
after_each(function()
|
||||
@@ -34,78 +33,105 @@ describe('context functions', function()
|
||||
|
||||
describe('ctxpush/ctxpop', function()
|
||||
it('saves and restores registers properly', function()
|
||||
local regs = {'1', '2', '3', 'a'}
|
||||
local vals = {'1', '2', '3', 'hjkl'}
|
||||
local regs = { '1', '2', '3', 'a' }
|
||||
local vals = { '1', '2', '3', 'hjkl' }
|
||||
feed('i1<cr>2<cr>3<c-[>ddddddqahjklq')
|
||||
eq(vals, map(function(r) return trim(call('getreg', r)) end, regs))
|
||||
eq(
|
||||
vals,
|
||||
map(function(r)
|
||||
return trim(call('getreg', r))
|
||||
end, regs)
|
||||
)
|
||||
call('ctxpush')
|
||||
call('ctxpush', {'regs'})
|
||||
call('ctxpush', { 'regs' })
|
||||
|
||||
map(function(r) call('setreg', r, {}) end, regs)
|
||||
eq({'', '', '', ''},
|
||||
map(function(r) return trim(call('getreg', r)) end, regs))
|
||||
map(function(r)
|
||||
call('setreg', r, {})
|
||||
end, regs)
|
||||
eq(
|
||||
{ '', '', '', '' },
|
||||
map(function(r)
|
||||
return trim(call('getreg', r))
|
||||
end, regs)
|
||||
)
|
||||
|
||||
call('ctxpop')
|
||||
eq(vals, map(function(r) return trim(call('getreg', r)) end, regs))
|
||||
eq(
|
||||
vals,
|
||||
map(function(r)
|
||||
return trim(call('getreg', r))
|
||||
end, regs)
|
||||
)
|
||||
|
||||
map(function(r) call('setreg', r, {}) end, regs)
|
||||
eq({'', '', '', ''},
|
||||
map(function(r) return trim(call('getreg', r)) end, regs))
|
||||
map(function(r)
|
||||
call('setreg', r, {})
|
||||
end, regs)
|
||||
eq(
|
||||
{ '', '', '', '' },
|
||||
map(function(r)
|
||||
return trim(call('getreg', r))
|
||||
end, regs)
|
||||
)
|
||||
|
||||
call('ctxpop')
|
||||
eq(vals, map(function(r) return trim(call('getreg', r)) end, regs))
|
||||
eq(
|
||||
vals,
|
||||
map(function(r)
|
||||
return trim(call('getreg', r))
|
||||
end, regs)
|
||||
)
|
||||
end)
|
||||
|
||||
it('saves and restores jumplist properly', function()
|
||||
command('edit '..fname1)
|
||||
command('edit ' .. fname1)
|
||||
feed('G')
|
||||
feed('gg')
|
||||
command('edit '..fname2)
|
||||
command('edit ' .. fname2)
|
||||
local jumplist = call('getjumplist')
|
||||
call('ctxpush')
|
||||
call('ctxpush', {'jumps'})
|
||||
call('ctxpush', { 'jumps' })
|
||||
|
||||
command('clearjumps')
|
||||
eq({{}, 0}, call('getjumplist'))
|
||||
eq({ {}, 0 }, call('getjumplist'))
|
||||
|
||||
call('ctxpop')
|
||||
eq(jumplist, call('getjumplist'))
|
||||
|
||||
command('clearjumps')
|
||||
eq({{}, 0}, call('getjumplist'))
|
||||
eq({ {}, 0 }, call('getjumplist'))
|
||||
|
||||
call('ctxpop')
|
||||
eq(jumplist, call('getjumplist'))
|
||||
end)
|
||||
|
||||
it('saves and restores buffer list properly', function()
|
||||
command('edit '..fname1)
|
||||
command('edit '..fname2)
|
||||
command('edit ' .. fname1)
|
||||
command('edit ' .. fname2)
|
||||
command('edit TEST')
|
||||
local bufs = call('map', call('getbufinfo'), 'v:val.name')
|
||||
call('ctxpush')
|
||||
call('ctxpush', {'bufs'})
|
||||
call('ctxpush', { 'bufs' })
|
||||
|
||||
command('%bwipeout')
|
||||
eq({''}, call('map', call('getbufinfo'), 'v:val.name'))
|
||||
eq({ '' }, call('map', call('getbufinfo'), 'v:val.name'))
|
||||
|
||||
call('ctxpop')
|
||||
eq({'', unpack(bufs)}, call('map', call('getbufinfo'), 'v:val.name'))
|
||||
eq({ '', unpack(bufs) }, call('map', call('getbufinfo'), 'v:val.name'))
|
||||
|
||||
command('%bwipeout')
|
||||
eq({''}, call('map', call('getbufinfo'), 'v:val.name'))
|
||||
eq({ '' }, call('map', call('getbufinfo'), 'v:val.name'))
|
||||
|
||||
call('ctxpop')
|
||||
eq({'', unpack(bufs)}, call('map', call('getbufinfo'), 'v:val.name'))
|
||||
eq({ '', unpack(bufs) }, call('map', call('getbufinfo'), 'v:val.name'))
|
||||
end)
|
||||
|
||||
it('saves and restores global variables properly', function()
|
||||
nvim('set_var', 'one', 1)
|
||||
nvim('set_var', 'Two', 2)
|
||||
nvim('set_var', 'THREE', 3)
|
||||
eq({1, 2 ,3}, eval('[g:one, g:Two, g:THREE]'))
|
||||
eq({ 1, 2, 3 }, eval('[g:one, g:Two, g:THREE]'))
|
||||
call('ctxpush')
|
||||
call('ctxpush', {'gvars'})
|
||||
call('ctxpush', { 'gvars' })
|
||||
|
||||
nvim('del_var', 'one')
|
||||
nvim('del_var', 'Two')
|
||||
@@ -115,7 +141,7 @@ describe('context functions', function()
|
||||
eq('Vim:E121: Undefined variable: g:THREE', pcall_err(eval, 'g:THREE'))
|
||||
|
||||
call('ctxpop')
|
||||
eq({1, 2 ,3}, eval('[g:one, g:Two, g:THREE]'))
|
||||
eq({ 1, 2, 3 }, eval('[g:one, g:Two, g:THREE]'))
|
||||
|
||||
nvim('del_var', 'one')
|
||||
nvim('del_var', 'Two')
|
||||
@@ -125,7 +151,7 @@ describe('context functions', function()
|
||||
eq('Vim:E121: Undefined variable: g:THREE', pcall_err(eval, 'g:THREE'))
|
||||
|
||||
call('ctxpop')
|
||||
eq({1, 2 ,3}, eval('[g:one, g:Two, g:THREE]'))
|
||||
eq({ 1, 2, 3 }, eval('[g:one, g:Two, g:THREE]'))
|
||||
end)
|
||||
|
||||
it('saves and restores script functions properly', function()
|
||||
@@ -164,28 +190,30 @@ describe('context functions', function()
|
||||
]])
|
||||
|
||||
eq('Hello, World!', exec_capture([[call Greet('World')]]))
|
||||
eq('Hello, World!'..
|
||||
'\nHello, One!'..
|
||||
'\nHello, Two!'..
|
||||
'\nHello, Three!',
|
||||
exec_capture([[call GreetAll('World', 'One', 'Two', 'Three')]]))
|
||||
eq(
|
||||
'Hello, World!' .. '\nHello, One!' .. '\nHello, Two!' .. '\nHello, Three!',
|
||||
exec_capture([[call GreetAll('World', 'One', 'Two', 'Three')]])
|
||||
)
|
||||
|
||||
call('SaveSFuncs')
|
||||
call('DeleteSFuncs')
|
||||
|
||||
eq('function Greet, line 1: Vim(call):E117: Unknown function: s:greet',
|
||||
pcall_err(command, [[call Greet('World')]]))
|
||||
eq('function GreetAll, line 1: Vim(call):E117: Unknown function: s:greet_all',
|
||||
pcall_err(command, [[call GreetAll('World', 'One', 'Two', 'Three')]]))
|
||||
eq(
|
||||
'function Greet, line 1: Vim(call):E117: Unknown function: s:greet',
|
||||
pcall_err(command, [[call Greet('World')]])
|
||||
)
|
||||
eq(
|
||||
'function GreetAll, line 1: Vim(call):E117: Unknown function: s:greet_all',
|
||||
pcall_err(command, [[call GreetAll('World', 'One', 'Two', 'Three')]])
|
||||
)
|
||||
|
||||
call('RestoreFuncs')
|
||||
|
||||
eq('Hello, World!', exec_capture([[call Greet('World')]]))
|
||||
eq('Hello, World!'..
|
||||
'\nHello, One!'..
|
||||
'\nHello, Two!'..
|
||||
'\nHello, Three!',
|
||||
exec_capture([[call GreetAll('World', 'One', 'Two', 'Three')]]))
|
||||
eq(
|
||||
'Hello, World!' .. '\nHello, One!' .. '\nHello, Two!' .. '\nHello, Three!',
|
||||
exec_capture([[call GreetAll('World', 'One', 'Two', 'Three')]])
|
||||
)
|
||||
end)
|
||||
|
||||
it('saves and restores functions properly', function()
|
||||
@@ -203,28 +231,28 @@ describe('context functions', function()
|
||||
]])
|
||||
|
||||
eq('Hello, World!', exec_capture([[call Greet('World')]]))
|
||||
eq('Hello, World!'..
|
||||
'\nHello, One!'..
|
||||
'\nHello, Two!'..
|
||||
'\nHello, Three!',
|
||||
exec_capture([[call GreetAll('World', 'One', 'Two', 'Three')]]))
|
||||
eq(
|
||||
'Hello, World!' .. '\nHello, One!' .. '\nHello, Two!' .. '\nHello, Three!',
|
||||
exec_capture([[call GreetAll('World', 'One', 'Two', 'Three')]])
|
||||
)
|
||||
|
||||
call('ctxpush', {'funcs'})
|
||||
call('ctxpush', { 'funcs' })
|
||||
command('delfunction Greet')
|
||||
command('delfunction GreetAll')
|
||||
|
||||
eq('Vim:E117: Unknown function: Greet', pcall_err(call, 'Greet', 'World'))
|
||||
eq('Vim:E117: Unknown function: GreetAll',
|
||||
pcall_err(call, 'GreetAll', 'World', 'One', 'Two', 'Three'))
|
||||
eq(
|
||||
'Vim:E117: Unknown function: GreetAll',
|
||||
pcall_err(call, 'GreetAll', 'World', 'One', 'Two', 'Three')
|
||||
)
|
||||
|
||||
call('ctxpop')
|
||||
|
||||
eq('Hello, World!', exec_capture([[call Greet('World')]]))
|
||||
eq('Hello, World!'..
|
||||
'\nHello, One!'..
|
||||
'\nHello, Two!'..
|
||||
'\nHello, Three!',
|
||||
exec_capture([[call GreetAll('World', 'One', 'Two', 'Three')]]))
|
||||
eq(
|
||||
'Hello, World!' .. '\nHello, One!' .. '\nHello, Two!' .. '\nHello, Three!',
|
||||
exec_capture([[call GreetAll('World', 'One', 'Two', 'Three')]])
|
||||
)
|
||||
end)
|
||||
|
||||
it('errors out when context stack is empty', function()
|
||||
@@ -268,21 +296,21 @@ describe('context functions', function()
|
||||
|
||||
it('returns context dictionary at index in context stack', function()
|
||||
feed('i1<cr>2<cr>3<c-[>ddddddqahjklq')
|
||||
command('edit! '..fname1)
|
||||
command('edit! ' .. fname1)
|
||||
feed('G')
|
||||
feed('gg')
|
||||
command('edit '..fname2)
|
||||
command('edit ' .. fname2)
|
||||
nvim('set_var', 'one', 1)
|
||||
nvim('set_var', 'Two', 2)
|
||||
nvim('set_var', 'THREE', 3)
|
||||
|
||||
local with_regs = {
|
||||
['regs'] = {
|
||||
{['rt'] = 1, ['rc'] = {'1'}, ['n'] = 49, ['ru'] = true},
|
||||
{['rt'] = 1, ['rc'] = {'2'}, ['n'] = 50},
|
||||
{['rt'] = 1, ['rc'] = {'3'}, ['n'] = 51},
|
||||
{['rc'] = {'hjkl'}, ['n'] = 97},
|
||||
}
|
||||
{ ['rt'] = 1, ['rc'] = { '1' }, ['n'] = 49, ['ru'] = true },
|
||||
{ ['rt'] = 1, ['rc'] = { '2' }, ['n'] = 50 },
|
||||
{ ['rt'] = 1, ['rc'] = { '3' }, ['n'] = 51 },
|
||||
{ ['rc'] = { 'hjkl' }, ['n'] = 97 },
|
||||
},
|
||||
}
|
||||
|
||||
local with_jumps = {
|
||||
@@ -292,17 +320,17 @@ describe('context functions', function()
|
||||
'filter(
|
||||
{ "f": expand("#".v:val.bufnr.":p"), "l": v:val.lnum },
|
||||
{ k, v -> k != "l" || v != 1 })'), '!empty(v:val.f)')
|
||||
]]):gsub('\n', ''))
|
||||
]]):gsub('\n', '')),
|
||||
}
|
||||
|
||||
local with_bufs = {
|
||||
['bufs'] = eval([[
|
||||
filter(map(getbufinfo(), '{ "f": v:val.name }'), '!empty(v:val.f)')
|
||||
]])
|
||||
]]),
|
||||
}
|
||||
|
||||
local with_gvars = {
|
||||
['gvars'] = {{'one', 1}, {'Two', 2}, {'THREE', 3}}
|
||||
['gvars'] = { { 'one', 1 }, { 'Two', 2 }, { 'THREE', 3 } },
|
||||
}
|
||||
|
||||
local with_all = {
|
||||
@@ -316,25 +344,25 @@ describe('context functions', function()
|
||||
eq(with_all, parse_context(call('ctxget')))
|
||||
eq(with_all, parse_context(call('ctxget', 0)))
|
||||
|
||||
call('ctxpush', {'gvars'})
|
||||
call('ctxpush', { 'gvars' })
|
||||
eq(with_gvars, parse_context(call('ctxget')))
|
||||
eq(with_gvars, parse_context(call('ctxget', 0)))
|
||||
eq(with_all, parse_context(call('ctxget', 1)))
|
||||
|
||||
call('ctxpush', {'bufs'})
|
||||
call('ctxpush', { 'bufs' })
|
||||
eq(with_bufs, parse_context(call('ctxget')))
|
||||
eq(with_bufs, parse_context(call('ctxget', 0)))
|
||||
eq(with_gvars, parse_context(call('ctxget', 1)))
|
||||
eq(with_all, parse_context(call('ctxget', 2)))
|
||||
|
||||
call('ctxpush', {'jumps'})
|
||||
call('ctxpush', { 'jumps' })
|
||||
eq(with_jumps, parse_context(call('ctxget')))
|
||||
eq(with_jumps, parse_context(call('ctxget', 0)))
|
||||
eq(with_bufs, parse_context(call('ctxget', 1)))
|
||||
eq(with_gvars, parse_context(call('ctxget', 2)))
|
||||
eq(with_all, parse_context(call('ctxget', 3)))
|
||||
|
||||
call('ctxpush', {'regs'})
|
||||
call('ctxpush', { 'regs' })
|
||||
eq(with_regs, parse_context(call('ctxget')))
|
||||
eq(with_regs, parse_context(call('ctxget', 0)))
|
||||
eq(with_jumps, parse_context(call('ctxget', 1)))
|
||||
@@ -368,17 +396,19 @@ describe('context functions', function()
|
||||
|
||||
describe('ctxset()', function()
|
||||
it('errors out when index is out of bounds', function()
|
||||
eq(outofbounds, pcall_err(call, 'ctxset', {dummy = 1}))
|
||||
eq(outofbounds, pcall_err(call, 'ctxset', { dummy = 1 }))
|
||||
call('ctxpush')
|
||||
eq(outofbounds, pcall_err(call, 'ctxset', {dummy = 1}, 1))
|
||||
eq(outofbounds, pcall_err(call, 'ctxset', { dummy = 1 }, 1))
|
||||
call('ctxpop')
|
||||
eq(outofbounds, pcall_err(call, 'ctxset', {dummy = 1}, 0))
|
||||
eq(outofbounds, pcall_err(call, 'ctxset', { dummy = 1 }, 0))
|
||||
end)
|
||||
|
||||
it('errors when context dictionary is invalid', function()
|
||||
call('ctxpush')
|
||||
eq('Vim:E474: Failed to convert list to msgpack string buffer',
|
||||
pcall_err(call, 'ctxset', { regs = { {} }, jumps = { {} } }))
|
||||
eq(
|
||||
'Vim:E474: Failed to convert list to msgpack string buffer',
|
||||
pcall_err(call, 'ctxset', { regs = { {} }, jumps = { {} } })
|
||||
)
|
||||
end)
|
||||
|
||||
it('sets context dictionary at index in context stack', function()
|
||||
@@ -394,17 +424,17 @@ describe('context functions', function()
|
||||
call('ctxpush')
|
||||
local ctx2 = call('ctxget')
|
||||
|
||||
eq({'a', 'b' ,'c'}, eval('[g:one, g:Two, g:THREE]'))
|
||||
eq({ 'a', 'b', 'c' }, eval('[g:one, g:Two, g:THREE]'))
|
||||
call('ctxset', ctx1)
|
||||
call('ctxset', ctx2, 2)
|
||||
call('ctxpop')
|
||||
eq({1, 2 ,3}, eval('[g:one, g:Two, g:THREE]'))
|
||||
eq({ 1, 2, 3 }, eval('[g:one, g:Two, g:THREE]'))
|
||||
call('ctxpop')
|
||||
eq({'a', 'b' ,'c'}, eval('[g:one, g:Two, g:THREE]'))
|
||||
eq({ 'a', 'b', 'c' }, eval('[g:one, g:Two, g:THREE]'))
|
||||
nvim('set_var', 'one', 1.5)
|
||||
eq({1.5, 'b' ,'c'}, eval('[g:one, g:Two, g:THREE]'))
|
||||
eq({ 1.5, 'b', 'c' }, eval('[g:one, g:Two, g:THREE]'))
|
||||
call('ctxpop')
|
||||
eq({'a', 'b' ,'c'}, eval('[g:one, g:Two, g:THREE]'))
|
||||
eq({ 'a', 'b', 'c' }, eval('[g:one, g:Two, g:THREE]'))
|
||||
end)
|
||||
end)
|
||||
end)
|
||||
|
Reference in New Issue
Block a user