diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2019-01-24 19:15:39 +0100 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2019-05-26 15:42:16 +0200 |
commit | 8ed54bbec3b07d16658547d6bf38a1e804800341 (patch) | |
tree | 404fd83325f4d6193b1b3d2c0c8ea7838d95e742 /test/functional/ui/messages_spec.lua | |
parent | e0348c610c5f84c03f69f638effab27d0c784c7f (diff) | |
download | rneovim-8ed54bbec3b07d16658547d6bf38a1e804800341.tar.gz rneovim-8ed54bbec3b07d16658547d6bf38a1e804800341.tar.bz2 rneovim-8ed54bbec3b07d16658547d6bf38a1e804800341.zip |
messages: use proper multiline error message for rpcrequest and API wrappers
Diffstat (limited to 'test/functional/ui/messages_spec.lua')
-rw-r--r-- | test/functional/ui/messages_spec.lua | 57 |
1 files changed, 55 insertions, 2 deletions
diff --git a/test/functional/ui/messages_spec.lua b/test/functional/ui/messages_spec.lua index d49d2f0316..976dbe5893 100644 --- a/test/functional/ui/messages_spec.lua +++ b/test/functional/ui/messages_spec.lua @@ -4,6 +4,7 @@ local clear, feed = helpers.clear, helpers.feed local eval = helpers.eval local eq = helpers.eq local command = helpers.command +local set_method_error = helpers.set_method_error describe('ui/ext_messages', function() @@ -631,7 +632,7 @@ describe('ui/ext_messages', function() eq(0, eval('&cmdheight')) end) - it('supports multiline messages', function() + it('supports multiline messages from lua', function() feed(':lua error("such\\nmultiline\\nerror")<cr>') screen:expect{grid=[[ ^ | @@ -641,9 +642,61 @@ describe('ui/ext_messages', function() {1:~ }| ]], messages={{ content = {{'E5105: Error while calling lua chunk: [string "<VimL compiled string>"]:1: such\nmultiline\nerror', 2}}, - kind = "emsg" + kind = "lua_error" }}} end) + + it('supports multiline messages from rpc', function() + feed(':call rpcrequest(1, "test_method")<cr>') + + screen:expect{grid=[[ + ^ | + {1:~ }| + {1:~ }| + {1:~ }| + {1:~ }| + ]], messages={{ + content = {{"Error invoking 'test_method' on channel 1:\ncomplete\nerror\n\nmessage", 2}}, + kind = "rpc_error" + }}, request_cb=function (name) + if name == "test_method" then + set_method_error("complete\nerror\n\nmessage") + end + end} + end) +end) + +describe('ui/builtin messages', function() + local screen + before_each(function() + clear() + screen = Screen.new(60, 7) + screen:attach({rgb=true, ext_popupmenu=true}) + screen:set_default_attr_ids({ + [1] = {bold = true, foreground = Screen.colors.Blue1}, + [2] = {foreground = Screen.colors.Grey100, background = Screen.colors.Red}, + [3] = {bold = true, reverse = true}, + [4] = {bold = true, foreground = Screen.colors.SeaGreen4}, + }) + end) + + it('supports multiline messages from rpc', function() + feed(':call rpcrequest(1, "test_method")<cr>') + + screen:expect{grid=[[ + {3: }| + {2:Error invoking 'test_method' on channel 1:} | + {2:complete} | + {2:error} | + | + {2:message} | + {4:Press ENTER or type command to continue}^ | + ]], request_cb=function (name) + if name == "test_method" then + set_method_error("complete\nerror\n\nmessage") + end + end} + end) end) describe('ui/ext_messages', function() |