diff options
Diffstat (limited to 'test/functional/terminal/api_spec.lua')
| -rw-r--r-- | test/functional/terminal/api_spec.lua | 60 | 
1 files changed, 60 insertions, 0 deletions
| diff --git a/test/functional/terminal/api_spec.lua b/test/functional/terminal/api_spec.lua new file mode 100644 index 0000000000..58d6c75940 --- /dev/null +++ b/test/functional/terminal/api_spec.lua @@ -0,0 +1,60 @@ +local helpers = require('test.functional.helpers')(after_each) +local child_session = require('test.functional.terminal.helpers') +local ok = helpers.ok + +if helpers.pending_win32(pending) then return end + +describe('api', function() +  local screen +  local socket_name = "Xtest_functional_api.sock" + +  before_each(function() +    helpers.clear() +    os.remove(socket_name) +    screen = child_session.screen_setup(0, '["'..helpers.nvim_prog +      ..'", "-u", "NONE", "-i", "NONE", "--cmd", "set noswapfile"]') +  end) +  after_each(function() +    os.remove(socket_name) +  end) + +  it("qa! RPC request during insert-mode", function() +    -- Start the socket from the child nvim. +    child_session.feed_data(":echo serverstart('"..socket_name.."')\n") + +    -- Wait for socket creation by abusing expect(). +    screen:expect([[ +      {1: }                                                 | +      {4:~                                                 }| +      {4:~                                                 }| +      {4:~                                                 }| +      {5:[No Name]                                         }| +      ]]..socket_name..[[                         | +      {3:-- TERMINAL --}                                    | +    ]]) + +    local socket_session1 = helpers.connect(socket_name) +    local socket_session2 = helpers.connect(socket_name) + +    child_session.feed_data("i[tui] insert-mode") + +    ok(socket_session1:request("nvim_ui_attach", 42, 6, {rgb=true})) +    ok(socket_session2:request("nvim_ui_attach", 25, 30, {rgb=true})) + +    socket_session1:notify("nvim_input", "\n[socket 1] this is more than 25 columns") +    socket_session2:notify("nvim_input", "\n[socket 2] input") + +    screen:expect([[ +      [tui] insert-mode                                 | +      [socket 1] this is more t{4:                         }| +      han 25 columns           {4:                         }| +      [socket 2] input{1: }        {4:                         }| +      {5:[No Name] [+]                                     }| +      {3:-- INSERT --}                                      | +      {3:-- TERMINAL --}                                    | +    ]]) + +    socket_session1:request("nvim_command", "qa!") +  end) +end) + | 
