aboutsummaryrefslogtreecommitdiff
path: root/test/functional/lua/snippet_spec.lua
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2024-01-28 22:01:25 +0800
committerGitHub <noreply@github.com>2024-01-28 22:01:25 +0800
commit1bc7e18aa81343952d3e3e5a5d5440dd3e270af9 (patch)
tree5a2d5155d0c63948528b3308237f0751155826c2 /test/functional/lua/snippet_spec.lua
parent6d86a6fe444a34dc0c70319c8056ff0161c4d319 (diff)
downloadrneovim-1bc7e18aa81343952d3e3e5a5d5440dd3e270af9.tar.gz
rneovim-1bc7e18aa81343952d3e3e5a5d5440dd3e270af9.tar.bz2
rneovim-1bc7e18aa81343952d3e3e5a5d5440dd3e270af9.zip
test(lua/snippet_spec): wait for completion menu (#27243)
This fixes the flakiness caused by typing a completion menu key when the completion menu hasn't showed up.
Diffstat (limited to 'test/functional/lua/snippet_spec.lua')
-rw-r--r--test/functional/lua/snippet_spec.lua20
1 files changed, 14 insertions, 6 deletions
diff --git a/test/functional/lua/snippet_spec.lua b/test/functional/lua/snippet_spec.lua
index bf73e6c6fd..f86d73a82b 100644
--- a/test/functional/lua/snippet_spec.lua
+++ b/test/functional/lua/snippet_spec.lua
@@ -5,9 +5,11 @@ local clear = helpers.clear
local eq = helpers.eq
local exec_lua = helpers.exec_lua
local feed = helpers.feed
+local fn = helpers.fn
local matches = helpers.matches
local pcall_err = helpers.pcall_err
-local sleep = vim.uv.sleep
+local poke_eventloop = helpers.poke_eventloop
+local retry = helpers.retry
describe('vim.snippet', function()
before_each(function()
@@ -35,6 +37,12 @@ describe('vim.snippet', function()
eq(expected, buf_lines(0))
end
+ local function wait_for_pum()
+ retry(nil, nil, function()
+ eq(1, fn.pumvisible())
+ end)
+ end
+
--- @param snippet string
--- @param err string
local function test_expand_fail(snippet, err)
@@ -185,16 +193,16 @@ describe('vim.snippet', function()
it('inserts choice', function()
test_expand_success({ 'console.${1|assert,log,error|}()' }, { 'console.()' })
- sleep(100)
+ wait_for_pum()
feed('<Down><C-y>')
eq({ 'console.log()' }, buf_lines(0))
end)
it('closes the choice completion menu when jumping', function()
test_expand_success({ 'console.${1|assert,log,error|}($2)' }, { 'console.()' })
- sleep(100)
+ wait_for_pum()
exec_lua('vim.snippet.jump(1)')
- eq(0, exec_lua('return vim.fn.pumvisible()'))
+ eq(0, fn.pumvisible())
end)
it('jumps to next tabstop after inserting choice', function()
@@ -202,9 +210,9 @@ describe('vim.snippet', function()
{ '${1|public,protected,private|} function ${2:name}() {', '\t$0', '}' },
{ ' function name() {', '\t', '}' }
)
- sleep(100)
+ wait_for_pum()
feed('<C-y><Tab>')
- sleep(10)
+ poke_eventloop()
feed('foo')
eq({ 'public function foo() {', '\t', '}' }, buf_lines(0))
end)