aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/functional/api/ui_spec.lua26
-rw-r--r--test/functional/helpers.lua2
-rw-r--r--test/functional/ui/input_spec.lua4
-rw-r--r--test/helpers.lua8
4 files changed, 26 insertions, 14 deletions
diff --git a/test/functional/api/ui_spec.lua b/test/functional/api/ui_spec.lua
index 32aae5d8f2..b028a50b02 100644
--- a/test/functional/api/ui_spec.lua
+++ b/test/functional/api/ui_spec.lua
@@ -3,6 +3,8 @@ local Screen = require('test.functional.ui.screen')
local clear = helpers.clear
local eq = helpers.eq
local eval = helpers.eval
+local expect_err = helpers.expect_err
+local meths = helpers.meths
local request = helpers.request
describe('nvim_ui_attach()', function()
@@ -16,24 +18,20 @@ describe('nvim_ui_attach()', function()
eq(999, eval('&columns'))
end)
it('invalid option returns error', function()
- local screen = Screen.new()
- local status, rv = pcall(function() screen:attach({foo={'foo'}}) end)
- eq(false, status)
- eq('No such UI option', rv:match("No such .*"))
+ expect_err('No such UI option: foo',
+ meths.ui_attach, 80, 24, { foo={'foo'} })
end)
it('validates channel arg', function()
- assert.has_error(function() request('nvim_ui_try_resize', 40, 10) end,
- 'UI not attached to channel: 1')
- assert.has_error(function() request('nvim_ui_set_option', 'rgb', true) end,
- 'UI not attached to channel: 1')
- assert.has_error(function() request('nvim_ui_detach') end,
- 'UI not attached to channel: 1')
+ expect_err('UI not attached to channel: 1',
+ request, 'nvim_ui_try_resize', 40, 10)
+ expect_err('UI not attached to channel: 1',
+ request, 'nvim_ui_set_option', 'rgb', true)
+ expect_err('UI not attached to channel: 1',
+ request, 'nvim_ui_detach')
local screen = Screen.new()
screen:attach({rgb=false})
- assert.has_error(function()
- request('nvim_ui_attach', 40, 10, { rgb=false })
- end,
- 'UI already attached to channel: 1')
+ expect_err('UI already attached to channel: 1',
+ request, 'nvim_ui_attach', 40, 10, { rgb=false })
end)
end)
diff --git a/test/functional/helpers.lua b/test/functional/helpers.lua
index 84ba6b6853..bf11042dd6 100644
--- a/test/functional/helpers.lua
+++ b/test/functional/helpers.lua
@@ -14,6 +14,7 @@ local check_cores = global_helpers.check_cores
local check_logs = global_helpers.check_logs
local neq = global_helpers.neq
local eq = global_helpers.eq
+local expect_err = global_helpers.expect_err
local ok = global_helpers.ok
local map = global_helpers.map
local matches = global_helpers.matches
@@ -737,6 +738,7 @@ local module = {
exc_exec = exc_exec,
expect = expect,
expect_any = expect_any,
+ expect_err = expect_err,
expect_msg_seq = expect_msg_seq,
expect_twostreams = expect_twostreams,
feed = feed,
diff --git a/test/functional/ui/input_spec.lua b/test/functional/ui/input_spec.lua
index 9bfc87d835..3dd9a2506e 100644
--- a/test/functional/ui/input_spec.lua
+++ b/test/functional/ui/input_spec.lua
@@ -128,6 +128,10 @@ describe('input utf sequences that contain CSI/K_SPECIAL', function()
end)
describe('input non-printable chars', function()
+ after_each(function()
+ os.remove('Xtest-overwrite')
+ end)
+
it("doesn't crash when echoing them back", function()
write_file("Xtest-overwrite", [[foobar]])
clear()
diff --git a/test/helpers.lua b/test/helpers.lua
index 0b6a10a29a..e0645d083f 100644
--- a/test/helpers.lua
+++ b/test/helpers.lua
@@ -22,6 +22,13 @@ local function matches(pat, actual)
end
error(string.format('Pattern does not match.\nPattern:\n%s\nActual:\n%s', pat, actual))
end
+-- Expect an error matching pattern `pat`.
+local function expect_err(pat, ...)
+ local fn = select(1, ...)
+ local fn_args = {...}
+ table.remove(fn_args, 1)
+ assert.error_matches(function() return fn(unpack(fn_args)) end, pat)
+end
-- initial_path: directory to recurse into
-- re: include pattern (string)
@@ -569,6 +576,7 @@ return {
deepcopy = deepcopy,
dictdiff = dictdiff,
eq = eq,
+ expect_err = expect_err,
filter = filter,
fixtbl = fixtbl,
fixtbl_rec = fixtbl_rec,