aboutsummaryrefslogtreecommitdiff
path: root/test/functional/lua/commands_spec.lua
diff options
context:
space:
mode:
authorZyX <kp-pav@yandex.ru>2017-01-29 04:11:18 +0300
committerZyX <kp-pav@yandex.ru>2017-03-27 00:12:42 +0300
commit7a5646d594ef4ed97f1969103a1cee32733bfa2d (patch)
tree092fb054135dbc1bc5b7752ab3f7c03563393123 /test/functional/lua/commands_spec.lua
parent3d48c35d6bfa83ba3ae621fa9ec3f512da199f59 (diff)
downloadrneovim-7a5646d594ef4ed97f1969103a1cee32733bfa2d.tar.gz
rneovim-7a5646d594ef4ed97f1969103a1cee32733bfa2d.tar.bz2
rneovim-7a5646d594ef4ed97f1969103a1cee32733bfa2d.zip
functests: Add tests for :lua
Diffstat (limited to 'test/functional/lua/commands_spec.lua')
-rw-r--r--test/functional/lua/commands_spec.lua53
1 files changed, 53 insertions, 0 deletions
diff --git a/test/functional/lua/commands_spec.lua b/test/functional/lua/commands_spec.lua
index 191504bfaa..6a37d1fd1b 100644
--- a/test/functional/lua/commands_spec.lua
+++ b/test/functional/lua/commands_spec.lua
@@ -2,3 +2,56 @@
local helpers = require('test.functional.helpers')(after_each)
local eq = helpers.eq
+local clear = helpers.clear
+local meths = helpers.meths
+local source = helpers.source
+local dedent = helpers.dedent
+local exc_exec = helpers.exc_exec
+local redir_exec = helpers.redir_exec
+local curbufmeths = helpers.curbufmeths
+
+before_each(clear)
+
+describe(':lua command', function()
+ it('works', function()
+ eq('', redir_exec(
+ 'lua vim.api.nvim_buf_set_lines(1, 1, 2, false, {"TEST"})'))
+ eq({'', 'TEST'}, curbufmeths.get_lines(0, 100, false))
+ source(dedent([[
+ lua << EOF
+ vim.api.nvim_buf_set_lines(1, 1, 2, false, {"TSET"})
+ EOF]]))
+ eq({'', 'TSET'}, curbufmeths.get_lines(0, 100, false))
+ source(dedent([[
+ lua << EOF
+ vim.api.nvim_buf_set_lines(1, 1, 2, false, {"SETT"})]]))
+ eq({'', 'SETT'}, curbufmeths.get_lines(0, 100, false))
+ source(dedent([[
+ lua << EOF
+ vim.api.nvim_buf_set_lines(1, 1, 2, false, {"ETTS"})
+ vim.api.nvim_buf_set_lines(1, 2, 3, false, {"TTSE"})
+ vim.api.nvim_buf_set_lines(1, 3, 4, false, {"STTE"})
+ EOF]]))
+ eq({'', 'ETTS', 'TTSE', 'STTE'}, curbufmeths.get_lines(0, 100, false))
+ end)
+ it('throws catchable errors', function()
+ eq([[Vim(lua):E5104: Error while creating lua chunk: [string "<VimL compiled string>"]:1: unexpected symbol near ')']],
+ exc_exec('lua ()'))
+ eq([[Vim(lua):E5105: Error while calling lua chunk: [string "<VimL compiled string>"]:1: TEST]],
+ exc_exec('lua error("TEST")'))
+ eq([[Vim(lua):E5105: Error while calling lua chunk: [string "<VimL compiled string>"]:1: Invalid buffer id]],
+ exc_exec('lua vim.api.nvim_buf_set_lines(-10, 1, 1, false, {"TEST"})'))
+ eq({''}, curbufmeths.get_lines(0, 100, false))
+ end)
+ it('accepts embedded NLs without heredoc', function()
+ -- Such code is usually used for `:execute 'lua' {generated_string}`:
+ -- heredocs do not work in this case.
+ meths.command([[
+ lua
+ vim.api.nvim_buf_set_lines(1, 1, 2, false, {"ETTS"})
+ vim.api.nvim_buf_set_lines(1, 2, 3, false, {"TTSE"})
+ vim.api.nvim_buf_set_lines(1, 3, 4, false, {"STTE"})
+ ]])
+ eq({'', 'ETTS', 'TTSE', 'STTE'}, curbufmeths.get_lines(0, 100, false))
+ end)
+end)