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/functional/ui/embed_spec.lua | |
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/functional/ui/embed_spec.lua')
-rw-r--r-- | test/functional/ui/embed_spec.lua | 71 |
1 files changed, 71 insertions, 0 deletions
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) |