aboutsummaryrefslogtreecommitdiff
path: root/test/functional/vimscript/minmax_functions_spec.lua
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2021-09-19 02:29:37 -0700
committerGitHub <noreply@github.com>2021-09-19 02:29:37 -0700
commit2afbce7651f79b0626ebeae3688274ce18ac2920 (patch)
treecb1e074962bdfc8ed00bf68775fc1fa0dbca6214 /test/functional/vimscript/minmax_functions_spec.lua
parent924e8e4f2d88ee5c45e521e9f758b7c9f247a011 (diff)
downloadrneovim-2afbce7651f79b0626ebeae3688274ce18ac2920.tar.gz
rneovim-2afbce7651f79b0626ebeae3688274ce18ac2920.tar.bz2
rneovim-2afbce7651f79b0626ebeae3688274ce18ac2920.zip
refactor(tests): remove redir_exec #15718
Problem - `redir_exec` is obsolete, but it keeps getting used in new tests because people copy existing tests. - Disadvantages of `redir_exec`: - Captures extra junk before the actual error/message that we _want_ to test. - Does not fail on error, unlike e.g. `command()`. Solution - Use new functions like `nvim_exec` and `pcall_err`.
Diffstat (limited to 'test/functional/vimscript/minmax_functions_spec.lua')
-rw-r--r--test/functional/vimscript/minmax_functions_spec.lua30
1 files changed, 14 insertions, 16 deletions
diff --git a/test/functional/vimscript/minmax_functions_spec.lua b/test/functional/vimscript/minmax_functions_spec.lua
index c6eb754f91..91106bef1e 100644
--- a/test/functional/vimscript/minmax_functions_spec.lua
+++ b/test/functional/vimscript/minmax_functions_spec.lua
@@ -2,29 +2,28 @@ local helpers = require('test.functional.helpers')(after_each)
local eq = helpers.eq
local eval = helpers.eval
+local command = helpers.command
local clear = helpers.clear
local funcs = helpers.funcs
-local redir_exec = helpers.redir_exec
+local pcall_err = helpers.pcall_err
before_each(clear)
for _, func in ipairs({'min', 'max'}) do
describe(func .. '()', function()
it('gives a single error message when multiple values failed conversions',
function()
- eq('\nE745: Using a List as a Number\n0',
- redir_exec('echo ' .. func .. '([-5, [], [], [], 5])'))
- eq('\nE745: Using a List as a Number\n0',
- redir_exec('echo ' .. func .. '({1:-5, 2:[], 3:[], 4:[], 5:5})'))
+ eq('Vim(echo):E745: Using a List as a Number',
+ pcall_err(command, 'echo ' .. func .. '([-5, [], [], [], 5])'))
+ eq('Vim(echo):E745: Using a List as a Number',
+ pcall_err(command, 'echo ' .. func .. '({1:-5, 2:[], 3:[], 4:[], 5:5})'))
for errmsg, errinput in pairs({
- ['E745: Using a List as a Number'] = '[]',
- ['E805: Using a Float as a Number'] = '0.0',
- ['E703: Using a Funcref as a Number'] = 'function("tr")',
- ['E728: Using a Dictionary as a Number'] = '{}',
+ ['Vim(echo):E745: Using a List as a Number'] = '[]',
+ ['Vim(echo):E805: Using a Float as a Number'] = '0.0',
+ ['Vim(echo):E703: Using a Funcref as a Number'] = 'function("tr")',
+ ['Vim(echo):E728: Using a Dictionary as a Number'] = '{}',
}) do
- eq('\n' .. errmsg .. '\n0',
- redir_exec('echo ' .. func .. '([' .. errinput .. '])'))
- eq('\n' .. errmsg .. '\n0',
- redir_exec('echo ' .. func .. '({1:' .. errinput .. '})'))
+ eq(errmsg, pcall_err(command, 'echo ' .. func .. '([' .. errinput .. '])'))
+ eq(errmsg, pcall_err(command, 'echo ' .. func .. '({1:' .. errinput .. '})'))
end
end)
it('works with arrays/dictionaries with zero items', function()
@@ -42,9 +41,8 @@ for _, func in ipairs({'min', 'max'}) do
it('errors out for invalid types', function()
for _, errinput in ipairs({'1', 'v:true', 'v:false', 'v:null',
'function("tr")', '""'}) do
- eq(('\nE712: Argument of %s() must be a List or Dictionary\n0'):format(
- func),
- redir_exec('echo ' .. func .. '(' .. errinput .. ')'))
+ eq(('Vim(echo):E712: Argument of %s() must be a List or Dictionary'):format(func),
+ pcall_err(command, 'echo ' .. func .. '(' .. errinput .. ')'))
end
end)
end)