From 04f2f864e270e772c6326cefdf24947f0130e492 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Wed, 3 Jan 2024 02:09:18 +0100 Subject: refactor: format test/* --- test/functional/lua/snippet_spec.lua | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'test/functional/lua/snippet_spec.lua') diff --git a/test/functional/lua/snippet_spec.lua b/test/functional/lua/snippet_spec.lua index f0b3b44139..defd13429e 100644 --- a/test/functional/lua/snippet_spec.lua +++ b/test/functional/lua/snippet_spec.lua @@ -154,7 +154,10 @@ describe('vim.snippet', function() end) it('errors with multiple placeholders for the same index', function() - test_expand_fail('class ${1:Foo} { void ${1:foo}() {} }', 'multiple placeholders for tabstop $1') + test_expand_fail( + 'class ${1:Foo} { void ${1:foo}() {} }', + 'multiple placeholders for tabstop $1' + ) end) it('errors with multiple $0 tabstops', function() @@ -162,26 +165,32 @@ describe('vim.snippet', function() end) it('cancels session when deleting the snippet', function() - test_expand_success({ 'local function $1()', ' $0', 'end' }, { 'local function ()', ' ', 'end' }) + test_expand_success( + { 'local function $1()', ' $0', 'end' }, + { 'local function ()', ' ', 'end' } + ) feed('Vjjd') eq(false, exec_lua('return vim.snippet.active()')) end) it('cancels session when inserting outside snippet region', function() feed('i') - test_expand_success({ 'local function $1()', ' $0', 'end' }, { '', 'local function ()', ' ', 'end' }) + test_expand_success( + { 'local function $1()', ' $0', 'end' }, + { '', 'local function ()', ' ', 'end' } + ) feed('O-- A comment') eq(false, exec_lua('return vim.snippet.active()')) end) - it('inserts choice', function () + it('inserts choice', function() test_expand_success({ 'console.${1|assert,log,error|}()' }, { 'console.()' }) sleep(100) feed('') eq({ 'console.log()' }, buf_lines(0)) end) - it('closes the choice completion menu when jumping', function () + it('closes the choice completion menu when jumping', function() test_expand_success({ 'console.${1|assert,log,error|}($2)' }, { 'console.()' }) sleep(100) exec_lua('vim.snippet.jump(1)') -- cgit From 7a259d01aed52134a1675e47d9054ccad7ef7cbb Mon Sep 17 00:00:00 2001 From: Lewis Russell Date: Fri, 12 Jan 2024 11:41:09 +0000 Subject: test: remove helpers.sleep() --- test/functional/lua/snippet_spec.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'test/functional/lua/snippet_spec.lua') diff --git a/test/functional/lua/snippet_spec.lua b/test/functional/lua/snippet_spec.lua index defd13429e..bf73e6c6fd 100644 --- a/test/functional/lua/snippet_spec.lua +++ b/test/functional/lua/snippet_spec.lua @@ -7,7 +7,7 @@ local exec_lua = helpers.exec_lua local feed = helpers.feed local matches = helpers.matches local pcall_err = helpers.pcall_err -local sleep = helpers.sleep +local sleep = vim.uv.sleep describe('vim.snippet', function() before_each(function() -- cgit From 1bc7e18aa81343952d3e3e5a5d5440dd3e270af9 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sun, 28 Jan 2024 22:01:25 +0800 Subject: 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. --- test/functional/lua/snippet_spec.lua | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) (limited to 'test/functional/lua/snippet_spec.lua') 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('') 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('') - sleep(10) + poke_eventloop() feed('foo') eq({ 'public function foo() {', '\t', '}' }, buf_lines(0)) end) -- cgit From 0e9a33572dc752463a0f5ad8a08a2c494d7a42e1 Mon Sep 17 00:00:00 2001 From: Maria José Solano Date: Wed, 3 Jan 2024 20:05:03 -0800 Subject: fix(lsp): handle adjacent snippet tabstops --- test/functional/lua/snippet_spec.lua | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'test/functional/lua/snippet_spec.lua') diff --git a/test/functional/lua/snippet_spec.lua b/test/functional/lua/snippet_spec.lua index f86d73a82b..6f76f46e75 100644 --- a/test/functional/lua/snippet_spec.lua +++ b/test/functional/lua/snippet_spec.lua @@ -216,4 +216,16 @@ describe('vim.snippet', function() feed('foo') eq({ 'public function foo() {', '\t', '}' }, buf_lines(0)) end) + + it('jumps through adjacent tabstops', function() + test_expand_success( + { 'for i=1,${1:to}${2:,step} do\n\t$3\nend' }, + { 'for i=1,to,step do', '\t', 'end' } + ) + feed('10') + feed('') + poke_eventloop() + feed(',2') + eq({ 'for i=1,10,2 do', '\t', 'end' }, buf_lines(0)) + end) end) -- cgit From 0fcbda59871ebc5fc91cac7fa430a4a93f6698c2 Mon Sep 17 00:00:00 2001 From: Maria José Solano Date: Sun, 25 Feb 2024 02:05:37 -0800 Subject: fix(lsp): add snippet regression test (#27618) --- test/functional/lua/snippet_spec.lua | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'test/functional/lua/snippet_spec.lua') diff --git a/test/functional/lua/snippet_spec.lua b/test/functional/lua/snippet_spec.lua index 6f76f46e75..e981bc6261 100644 --- a/test/functional/lua/snippet_spec.lua +++ b/test/functional/lua/snippet_spec.lua @@ -228,4 +228,16 @@ describe('vim.snippet', function() feed(',2') eq({ 'for i=1,10,2 do', '\t', 'end' }, buf_lines(0)) end) + + it('updates snippet state when built-in completion menu is visible', function() + test_expand_success({ '$1 = function($2)\n$3\nend' }, { ' = function()', '', 'end' }) + -- Show the completion menu. + feed('') + -- Make sure no item is selected. + feed('') + -- Jump forward (the 2nd tabstop). + exec_lua('vim.snippet.jump(1)') + feed('foo') + eq({ ' = function(foo)', '', 'end' }, buf_lines(0)) + end) end) -- cgit