diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2018-09-18 20:52:13 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-18 20:52:13 +0200 |
commit | 809fff94e6786875cc852b98550cc73e65b33a87 (patch) | |
tree | 1798c2487a0a84ae7e98ac5d61906ca21742601e /test | |
parent | 32ad52ae04d3fea1fa84594b9b13ee1442a410ca (diff) | |
parent | bd8d43c6fef868ad5ed50a79deb0f7adc1f5e53a (diff) | |
download | rneovim-809fff94e6786875cc852b98550cc73e65b33a87.tar.gz rneovim-809fff94e6786875cc852b98550cc73e65b33a87.tar.bz2 rneovim-809fff94e6786875cc852b98550cc73e65b33a87.zip |
Merge pull request #8754 from bfredl/embed_ui
startup: make --embed wait for first request so embedding UI can display startup messages
Diffstat (limited to 'test')
-rw-r--r-- | test/functional/helpers.lua | 2 | ||||
-rw-r--r-- | test/functional/plugin/helpers.lua | 2 | ||||
-rw-r--r-- | test/functional/ui/embed_spec.lua | 71 |
3 files changed, 75 insertions, 0 deletions
diff --git a/test/functional/helpers.lua b/test/functional/helpers.lua index 72e71a2cf2..8823a6e003 100644 --- a/test/functional/helpers.lua +++ b/test/functional/helpers.lua @@ -362,6 +362,8 @@ local function clear(...) table.insert(args, arg) end set_session(spawn(args, nil, env)) + -- Dummy request so that --embed continues past UI initialization + session:request('nvim_eval', "0") end local function insert(...) diff --git a/test/functional/plugin/helpers.lua b/test/functional/plugin/helpers.lua index 2024e6ebbf..bd482d2db7 100644 --- a/test/functional/plugin/helpers.lua +++ b/test/functional/plugin/helpers.lua @@ -3,6 +3,7 @@ local paths = require('test.config.paths') local helpers = require('test.functional.helpers')(nil) local spawn, set_session, nvim_prog, merge_args = helpers.spawn, helpers.set_session, helpers.nvim_prog, helpers.merge_args +local request = helpers.request local additional_cmd = '' @@ -29,6 +30,7 @@ local function reset(...) end session = spawn(nvim_argv(...)) set_session(session) + request('nvim_eval', "0") end local function set_additional_cmd(s) diff --git a/test/functional/ui/embed_spec.lua b/test/functional/ui/embed_spec.lua new file mode 100644 index 0000000000..7d41567fda --- /dev/null +++ b/test/functional/ui/embed_spec.lua @@ -0,0 +1,71 @@ +local helpers = require('test.functional.helpers')(after_each) +local Screen = require('test.functional.ui.screen') + +local feed = helpers.feed +local spawn, set_session = helpers.spawn, helpers.set_session +local nvim_prog, nvim_set = helpers.nvim_prog, helpers.nvim_set +local merge_args, prepend_argv = helpers.merge_args, helpers.prepend_argv + +describe('--embed UI on startup', function() + local session, screen + local function startup(...) + local nvim_argv = {nvim_prog, '-u', 'NONE', '-i', 'NONE', + '--cmd', nvim_set, '--embed'} + nvim_argv = merge_args(prepend_argv, nvim_argv, {...}) + session = spawn(nvim_argv) + set_session(session) + + -- attach immediately after startup, for early UI + screen = Screen.new(60, 8) + screen:attach() + screen:set_default_attr_ids({ + [1] = {foreground = Screen.colors.Grey100, background = Screen.colors.Red}, + [2] = {bold = true, foreground = Screen.colors.SeaGreen4}, + [3] = {bold = true, foreground = Screen.colors.Blue1}, + }) + end + + after_each(function() + session:close() + end) + + it('can display errors', function() + startup('--cmd', 'echoerr invalid+') + screen:expect([[ + | + | + | + | + Error detected while processing pre-vimrc command line: | + E121: Undefined variable: invalid | + E15: Invalid expression: invalid+ | + Press ENTER or type command to continue^ | + ]]) + + feed('<cr>') + screen:expect([[ + ^ | + {3:~ }| + {3:~ }| + {3:~ }| + {3:~ }| + {3:~ }| + {3:~ }| + | + ]]) + end) + + it("doesn't erase output when setting colors", function() + startup('--cmd', 'echoerr "foo"', '--cmd', 'color default', '--cmd', 'echoerr "bar"') + screen:expect([[ + | + | + | + | + Error detected while processing pre-vimrc command line: | + foo | + {1:bar} | + {2:Press ENTER or type command to continue}^ | + ]]) + end) +end) |