completedone_spec.lua (1173B)
1 local t = require('test.testutil') 2 local n = require('test.functional.testnvim')() 3 4 local clear = n.clear 5 local command = n.command 6 local call = n.call 7 local feed = n.feed 8 local eval = n.eval 9 local eq = t.eq 10 11 describe('CompleteDone', function() 12 before_each(clear) 13 14 describe('sets v:event.reason', function() 15 before_each(function() 16 command('autocmd CompleteDone * let g:donereason = v:event.reason') 17 feed('i') 18 call('complete', call('col', '.'), { 'foo', 'bar' }) 19 end) 20 21 it('accept', function() 22 feed('<C-y>') 23 eq('accept', eval('g:donereason')) 24 end) 25 26 it('cancel', function() 27 feed('<C-e>') 28 eq('cancel', eval('g:donereason')) 29 end) 30 31 describe('discard', function() 32 it('on non-keyword character', function() 33 feed('<Space>') 34 eq('discard', eval('g:donereason')) 35 end) 36 37 it('on mode change', function() 38 feed('<Esc>') 39 eq('discard', eval('g:donereason')) 40 end) 41 42 it('when overridden by another complete()', function() 43 call('complete', call('col', '.'), { 'bar', 'baz' }) 44 eq('discard', eval('g:donereason')) 45 end) 46 end) 47 end) 48 end)