aboutsummaryrefslogtreecommitdiff
path: root/test/functional/lua/highlight_spec.lua
diff options
context:
space:
mode:
authornotomo <notomo.motono@gmail.com>2021-08-26 23:37:36 +0900
committerSean Dewar <seandewar@users.noreply.github.com>2021-09-16 14:46:27 +0100
commitf7002337c02a3a6b73b7d1409186c864b129413d (patch)
tree936de547a57fae1278e83adba5d87367a813162e /test/functional/lua/highlight_spec.lua
parent6bda2f56eb01b9a9ee3c0d25cb607d03dd64b91a (diff)
downloadrneovim-f7002337c02a3a6b73b7d1409186c864b129413d.tar.gz
rneovim-f7002337c02a3a6b73b7d1409186c864b129413d.tar.bz2
rneovim-f7002337c02a3a6b73b7d1409186c864b129413d.zip
backport: fix(lua): verify buffer in highlight.on_yank (#15482)
Resolve an issue with deferred clearing of highlight failing if the buffer is deleted before the timeout by checking whether the buffer is valid first.
Diffstat (limited to 'test/functional/lua/highlight_spec.lua')
-rw-r--r--test/functional/lua/highlight_spec.lua26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/functional/lua/highlight_spec.lua b/test/functional/lua/highlight_spec.lua
new file mode 100644
index 0000000000..853b2991e8
--- /dev/null
+++ b/test/functional/lua/highlight_spec.lua
@@ -0,0 +1,26 @@
+local helpers = require('test.functional.helpers')(after_each)
+local funcs = helpers.funcs
+local exec_lua = helpers.exec_lua
+local command = helpers.command
+local clear = helpers.clear
+
+describe('vim.highlight.on_yank', function()
+
+ before_each(function()
+ clear()
+ end)
+
+ it('does not show errors even if buffer is wiped before timeout', function()
+ command('new')
+ local bufnr = funcs.bufnr("%")
+ exec_lua[[
+ vim.highlight.on_yank({timeout = 10, on_macro = true, event = {operator = "y", regtype = "v"}})
+ vim.cmd('bwipeout!')
+ ]]
+ exec_lua[[vim.wait(10)]]
+ local pattern = [[vim/highlight.lua:%d+: Invalid buffer id: ]] .. bufnr
+ local exists = pcall(helpers.assert_log, pattern)
+ assert.is_false(exists, string.format("%q should not be in log", pattern))
+ end)
+
+end)