diff options
author | zeertzjq <zeertzjq@outlook.com> | 2024-01-28 22:01:25 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-28 22:01:25 +0800 |
commit | 1bc7e18aa81343952d3e3e5a5d5440dd3e270af9 (patch) | |
tree | 5a2d5155d0c63948528b3308237f0751155826c2 /test/functional/lua/snippet_spec.lua | |
parent | 6d86a6fe444a34dc0c70319c8056ff0161c4d319 (diff) | |
download | rneovim-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.lua | 20 |
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) |