diff options
author | Maria José Solano <majosolano99@gmail.com> | 2023-11-11 18:07:46 -0800 |
---|---|---|
committer | Mathias Fußenegger <mfussenegger@users.noreply.github.com> | 2023-11-17 17:10:27 +0100 |
commit | 4972c80489af263c96865c43615bea0977a18b77 (patch) | |
tree | 694bfe4ae64e8de4d490ad3408a407593a46d526 /test/functional/lua/snippet_spec.lua | |
parent | 7e36c8e972f0b2e07c6186aa5dca2f70d95a77f2 (diff) | |
download | rneovim-4972c80489af263c96865c43615bea0977a18b77.tar.gz rneovim-4972c80489af263c96865c43615bea0977a18b77.tar.bz2 rneovim-4972c80489af263c96865c43615bea0977a18b77.zip |
refactor(snippet): rename test utilities
Diffstat (limited to 'test/functional/lua/snippet_spec.lua')
-rw-r--r-- | test/functional/lua/snippet_spec.lua | 65 |
1 files changed, 33 insertions, 32 deletions
diff --git a/test/functional/lua/snippet_spec.lua b/test/functional/lua/snippet_spec.lua index bf43d5114f..f0b3b44139 100644 --- a/test/functional/lua/snippet_spec.lua +++ b/test/functional/lua/snippet_spec.lua @@ -1,5 +1,6 @@ local helpers = require('test.functional.helpers')(after_each) +local buf_lines = helpers.buf_lines local clear = helpers.clear local eq = helpers.eq local exec_lua = helpers.exec_lua @@ -23,7 +24,7 @@ describe('vim.snippet', function() --- @param expected string[] --- @param settings? string --- @param prefix? string - local function test_success(snippet, expected, settings, prefix) + local function test_expand_success(snippet, expected, settings, prefix) if settings then exec_lua(settings) end @@ -31,17 +32,17 @@ describe('vim.snippet', function() feed('i' .. prefix) end exec_lua('vim.snippet.expand(...)', table.concat(snippet, '\n')) - eq(expected, helpers.buf_lines(0)) + eq(expected, buf_lines(0)) end --- @param snippet string --- @param err string - local function test_fail(snippet, err) + local function test_expand_fail(snippet, err) matches(err, pcall_err(exec_lua, string.format('vim.snippet.expand("%s")', snippet))) end it('adds base indentation to inserted text', function() - test_success( + test_expand_success( { 'function $1($2)', ' $0', 'end' }, { ' function ()', ' ', ' end' }, '', @@ -50,11 +51,11 @@ describe('vim.snippet', function() end) it('adds indentation based on the start of snippet lines', function() - test_success({ 'if $1 then', ' $0', 'end' }, { 'if then', ' ', 'end' }) + test_expand_success({ 'if $1 then', ' $0', 'end' }, { 'if then', ' ', 'end' }) end) it('replaces tabs with spaces when expandtab is set', function() - test_success( + test_expand_success( { 'function $1($2)', '\t$0', 'end' }, { 'function ()', ' ', 'end' }, [[ @@ -65,7 +66,7 @@ describe('vim.snippet', function() end) it('respects tabs when expandtab is not set', function() - test_success( + test_expand_success( { 'function $1($2)', '\t$0', 'end' }, { 'function ()', '\t', 'end' }, 'vim.o.expandtab = false' @@ -73,28 +74,28 @@ describe('vim.snippet', function() end) it('inserts known variable value', function() - test_success({ '; print($TM_CURRENT_LINE)' }, { 'foo; print(foo)' }, nil, 'foo') + test_expand_success({ '; print($TM_CURRENT_LINE)' }, { 'foo; print(foo)' }, nil, 'foo') end) it('uses default when variable is not set', function() - test_success({ 'print(${TM_CURRENT_WORD:foo})' }, { 'print(foo)' }) + test_expand_success({ 'print(${TM_CURRENT_WORD:foo})' }, { 'print(foo)' }) end) it('replaces unknown variables by placeholders', function() - test_success({ 'print($UNKNOWN)' }, { 'print(UNKNOWN)' }) + test_expand_success({ 'print($UNKNOWN)' }, { 'print(UNKNOWN)' }) end) it('does not jump outside snippet range', function() - test_success({ 'function $1($2)', ' $0', 'end' }, { 'function ()', ' ', 'end' }) + test_expand_success({ 'function $1($2)', ' $0', 'end' }, { 'function ()', ' ', 'end' }) eq(false, exec_lua('return vim.snippet.jumpable(-1)')) feed('<Tab><Tab>i') eq(false, exec_lua('return vim.snippet.jumpable(1)')) end) it('navigates backwards', function() - test_success({ 'function $1($2) end' }, { 'function () end' }) + test_expand_success({ 'function $1($2) end' }, { 'function () end' }) feed('<Tab><S-Tab>foo') - eq({ 'function foo() end' }, helpers.buf_lines(0)) + eq({ 'function foo() end' }, buf_lines(0)) end) it('visits all tabstops', function() @@ -102,7 +103,7 @@ describe('vim.snippet', function() return exec_lua('return vim.api.nvim_win_get_cursor(0)') end - test_success({ 'function $1($2)', ' $0', 'end' }, { 'function ()', ' ', 'end' }) + test_expand_success({ 'function $1($2)', ' $0', 'end' }, { 'function ()', ' ', 'end' }) eq({ 1, 9 }, cursor()) feed('<Tab>') eq({ 1, 10 }, cursor()) @@ -111,84 +112,84 @@ describe('vim.snippet', function() end) it('syncs text of tabstops with equal indexes', function() - test_success({ 'var double = ${1:x} + ${1:x}' }, { 'var double = x + x' }) + test_expand_success({ 'var double = ${1:x} + ${1:x}' }, { 'var double = x + x' }) feed('123') - eq({ 'var double = 123 + 123' }, helpers.buf_lines(0)) + eq({ 'var double = 123 + 123' }, buf_lines(0)) end) it('cancels session with changes outside the snippet', function() - test_success({ 'print($1)' }, { 'print()' }) + test_expand_success({ 'print($1)' }, { 'print()' }) feed('<Esc>O-- A comment') eq(false, exec_lua('return vim.snippet.active()')) - eq({ '-- A comment', 'print()' }, helpers.buf_lines(0)) + eq({ '-- A comment', 'print()' }, buf_lines(0)) end) it('handles non-consecutive tabstops', function() - test_success({ 'class $1($3) {', ' $0', '}' }, { 'class () {', ' ', '}' }) + test_expand_success({ 'class $1($3) {', ' $0', '}' }, { 'class () {', ' ', '}' }) feed('Foo') -- First tabstop feed('<Tab><Tab>') -- Jump to $0 feed('// Inside') -- Insert text - eq({ 'class Foo() {', ' // Inside', '}' }, helpers.buf_lines(0)) + eq({ 'class Foo() {', ' // Inside', '}' }, buf_lines(0)) end) it('handles multiline placeholders', function() - test_success( + test_expand_success( { 'public void foo() {', ' ${0:// TODO Auto-generated', ' throw;}', '}' }, { 'public void foo() {', ' // TODO Auto-generated', ' throw;', '}' } ) end) it('inserts placeholder in all tabstops when the first tabstop has the placeholder', function() - test_success( + test_expand_success( { 'for (${1:int} ${2:x} = ${3:0}; $2 < ${4:N}; $2++) {', ' $0', '}' }, { 'for (int x = 0; x < N; x++) {', ' ', '}' } ) end) it('inserts placeholder in all tabstops when a later tabstop has the placeholder', function() - test_success( + test_expand_success( { 'for (${1:int} $2 = ${3:0}; ${2:x} < ${4:N}; $2++) {', ' $0', '}' }, { 'for (int x = 0; x < N; x++) {', ' ', '}' } ) end) it('errors with multiple placeholders for the same index', function() - test_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() - test_fail('function $1() { $0 }$0', 'multiple $0 tabstops') + test_expand_fail('function $1() { $0 }$0', 'multiple $0 tabstops') end) it('cancels session when deleting the snippet', function() - test_success({ 'local function $1()', ' $0', 'end' }, { 'local function ()', ' ', 'end' }) + test_expand_success({ 'local function $1()', ' $0', 'end' }, { 'local function ()', ' ', 'end' }) feed('<esc>Vjjd') eq(false, exec_lua('return vim.snippet.active()')) end) it('cancels session when inserting outside snippet region', function() feed('i<cr>') - test_success({ 'local function $1()', ' $0', 'end' }, { '', 'local function ()', ' ', 'end' }) + test_expand_success({ 'local function $1()', ' $0', 'end' }, { '', 'local function ()', ' ', 'end' }) feed('<esc>O-- A comment') eq(false, exec_lua('return vim.snippet.active()')) end) it('inserts choice', function () - test_success({ 'console.${1|assert,log,error|}()' }, { 'console.()' }) + test_expand_success({ 'console.${1|assert,log,error|}()' }, { 'console.()' }) sleep(100) feed('<Down><C-y>') - eq({ 'console.log()' }, helpers.buf_lines(0)) + eq({ 'console.log()' }, buf_lines(0)) end) it('closes the choice completion menu when jumping', function () - test_success({ 'console.${1|assert,log,error|}($2)' }, { 'console.()' }) + test_expand_success({ 'console.${1|assert,log,error|}($2)' }, { 'console.()' }) sleep(100) exec_lua('vim.snippet.jump(1)') eq(0, exec_lua('return vim.fn.pumvisible()')) end) it('jumps to next tabstop after inserting choice', function() - test_success( + test_expand_success( { '${1|public,protected,private|} function ${2:name}() {', '\t$0', '}' }, { ' function name() {', '\t', '}' } ) @@ -196,6 +197,6 @@ describe('vim.snippet', function() feed('<C-y><Tab>') sleep(10) feed('foo') - eq({ 'public function foo() {', '\t', '}' }, helpers.buf_lines(0)) + eq({ 'public function foo() {', '\t', '}' }, buf_lines(0)) end) end) |