Files
dotfiles/dot_vim/plugged/vim-vsnip/spec/autoload/vsnip.vimspec

150 lines
3.4 KiB
Plaintext

let s:expect = themis#helper('expect')
Describe vsnip
Describe #get_context
It should return context information in insert-mode
enew!
set filetype=basic_spec
call setline(1, 'if')
call cursor([1, 2])
let g:vsnip_assert = {}
function g:vsnip_assert.step1()
call s:expect(mode(1)).to_equal('i')
call s:expect(vsnip#get_context()).to_equal({
\ 'range': {
\ 'start': {
\ 'line': 0,
\ 'character': 0,
\ },
\ 'end': {
\ 'line': 0,
\ 'character': 2,
\ },
\ },
\ 'snippet': {
\ 'label': 'if',
\ 'description': '',
\ 'prefix': ['if'],
\ 'prefix_alias': [],
\ 'body': [
\ "if ${1:condition}",
\ "\t$0",
\ "endif",
\ ],
\ }
\ })
endfunction
call feedkeys("a\<Plug>(vsnip-assert)", 'x')
End
It should return context information in normal-mode
enew!
set filetype=basic_spec
call setline(1, 'if')
call cursor([1, 2])
call s:expect(mode(1)).to_equal('n')
call s:expect(vsnip#get_context()).to_equal({
\ 'range': {
\ 'start': {
\ 'line': 0,
\ 'character': 0,
\ },
\ 'end': {
\ 'line': 0,
\ 'character': 2,
\ },
\ },
\ 'snippet': {
\ 'label': 'if',
\ 'description': '',
\ 'prefix': ['if'],
\ 'prefix_alias': [],
\ 'body': [
\ "if ${1:condition}",
\ "\t$0",
\ "endif",
\ ],
\ }
\ })
End
It should return context information in select-mode
enew!
set filetype=basic_spec
call setline(1, 'if')
call feedkeys("v\<C-g>", 'x')
call cursor([1, 2])
call s:expect(mode(1)).to_equal('s')
call s:expect(vsnip#get_context()).to_equal({
\ 'range': {
\ 'start': {
\ 'line': 0,
\ 'character': 0,
\ },
\ 'end': {
\ 'line': 0,
\ 'character': 2,
\ },
\ },
\ 'snippet': {
\ 'label': 'if',
\ 'description': '',
\ 'prefix': ['if'],
\ 'prefix_alias': [],
\ 'body': [
\ "if ${1:condition}",
\ "\t$0",
\ "endif",
\ ],
\ }
\ })
End
End
Describe #get_complete_items
It should return complete items
enew!
set filetype=basic_spec
call s:expect(vsnip#get_complete_items(bufnr('%'))[-1]).to_equal({
\ 'word': 'if',
\ 'abbr': 'if',
\ 'kind': 'Snippet',
\ 'menu': '[v] if',
\ 'dup': 1,
\ 'user_data': json_encode({
\ 'vsnip': {
\ 'snippet': [
\ "if ${1:condition}",
\ "\t$0",
\ "endif",
\ ]
\ }
\ })
\ }, {
\ 'word': 'inline-fn',
\ 'abbr': 'inline-fn',
\ 'kind': 'Snippet',
\ 'menu': '[v] inline-fn',
\ 'dup': 1,
\ 'user_data': json_encode({
\ 'vsnip': {
\ 'snippet': [
\ "{ -> $1 }$0"
\ ]
\ }
\ })
\ })
End
End
End