aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/client/session.lua3
-rw-r--r--test/functional/terminal/tui_spec.lua46
-rw-r--r--test/functional/testnvim.lua2
3 files changed, 44 insertions, 7 deletions
diff --git a/test/client/session.lua b/test/client/session.lua
index 38d81eff83..bfce4eedc7 100644
--- a/test/client/session.lua
+++ b/test/client/session.lua
@@ -96,8 +96,7 @@ end
--- @param method string
--- @param ... any
---- @return boolean
---- @return table
+--- @return boolean, table
function Session:request(method, ...)
local args = { ... }
local err, result
diff --git a/test/functional/terminal/tui_spec.lua b/test/functional/terminal/tui_spec.lua
index 6375e6fbae..3e837e796d 100644
--- a/test/functional/terminal/tui_spec.lua
+++ b/test/functional/terminal/tui_spec.lua
@@ -40,8 +40,8 @@ if t.skip(is_os('win')) then
end
describe('TUI', function()
- local screen
- local child_session
+ local screen --[[@type test.functional.ui.screen]]
+ local child_session --[[@type test.Session]]
local child_exec_lua
before_each(function()
@@ -1651,12 +1651,13 @@ describe('TUI', function()
]])
end)
- it('in nvim_list_uis()', function()
+ it('in nvim_list_uis(), sets nvim_set_client_info()', function()
-- $TERM in :terminal.
local exp_term = is_os('bsd') and 'builtin_xterm' or 'xterm-256color'
+ local ui_chan = 1
local expected = {
{
- chan = 1,
+ chan = ui_chan,
ext_cmdline = false,
ext_hlstate = false,
ext_linegrid = true,
@@ -1679,6 +1680,43 @@ describe('TUI', function()
}
local _, rv = child_session:request('nvim_list_uis')
eq(expected, rv)
+
+ ---@type table
+ local expected_version = ({
+ child_session:request('nvim_exec_lua', 'return vim.version()', {}),
+ })[2]
+ -- vim.version() returns `prerelease` string. Coerce it to boolean.
+ expected_version.prerelease = not not expected_version.prerelease
+
+ local expected_chan_info = {
+ client = {
+ attributes = {
+ license = 'Apache 2',
+ -- pid = 5371,
+ website = 'https://neovim.io',
+ },
+ methods = {},
+ name = 'nvim-tui',
+ type = 'ui',
+ version = expected_version,
+ },
+ id = ui_chan,
+ mode = 'rpc',
+ stream = 'stdio',
+ }
+
+ local status, chan_info = child_session:request('nvim_get_chan_info', ui_chan)
+ ok(status)
+ local info = chan_info.client
+ ok(info.attributes.pid and info.attributes.pid > 0, 'PID', info.attributes.pid or 'nil')
+ ok(info.version.major >= 0)
+ ok(info.version.minor >= 0)
+ ok(info.version.patch >= 0)
+
+ -- Delete variable fields so we can deep-compare.
+ info.attributes.pid = nil
+
+ eq(expected_chan_info, chan_info)
end)
it('allows grid to assume wider ambiwidth chars than host terminal', function()
diff --git a/test/functional/testnvim.lua b/test/functional/testnvim.lua
index a66f0cd52c..ac2ec89271 100644
--- a/test/functional/testnvim.lua
+++ b/test/functional/testnvim.lua
@@ -458,7 +458,7 @@ end
--- @param argv string[]
--- @param merge boolean?
--- @param env string[]?
---- @param keep boolean
+--- @param keep boolean?
--- @param io_extra uv.uv_pipe_t? used for stdin_fd, see :help ui-option
--- @return test.Session
function M.spawn(argv, merge, env, keep, io_extra)