aboutsummaryrefslogtreecommitdiff
path: root/test/functional/api/vim_spec.lua
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/api/vim_spec.lua')
-rw-r--r--test/functional/api/vim_spec.lua12
1 files changed, 11 insertions, 1 deletions
diff --git a/test/functional/api/vim_spec.lua b/test/functional/api/vim_spec.lua
index 718294d941..77cc7e6a05 100644
--- a/test/functional/api/vim_spec.lua
+++ b/test/functional/api/vim_spec.lua
@@ -158,13 +158,23 @@ describe('api', function()
eq(17, nvim('call_function', 'eval', {17}))
eq('foo', nvim('call_function', 'simplify', {'this/./is//redundant/../../../foo'}))
end)
-
it("VimL error: fails (generic error), does NOT update v:errmsg", function()
local status, rv = pcall(nvim, "call_function", "bogus function", {"arg1"})
eq(false, status) -- nvim_call_function() failed.
ok(nil ~= string.find(rv, "Error calling function"))
eq("", nvim("eval", "v:errmsg")) -- v:errmsg was not updated.
end)
+ it('validates args', function()
+ local too_many_args = { 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x' }
+ source([[
+ function! Foo(...) abort
+ echo a:000
+ endfunction
+ ]])
+ -- E740
+ expect_err('Function called with too many arguments', request,
+ 'nvim_call_function', 'Foo', too_many_args)
+ end)
end)
describe('nvim_execute_lua', function()