recording_spec.lua (1883B)
1 local t = require('test.testutil') 2 local n = require('test.functional.testnvim')() 3 4 local clear = n.clear 5 local eq = t.eq 6 local eval = n.eval 7 local source_vim = n.source 8 9 describe('RecordingEnter', function() 10 before_each(clear) 11 it('works', function() 12 source_vim [[ 13 let g:recorded = 0 14 autocmd RecordingEnter * let g:recorded += 1 15 call feedkeys("qqyyq", 'xt') 16 ]] 17 eq(1, eval('g:recorded')) 18 end) 19 20 it('gives a correct reg_recording()', function() 21 source_vim [[ 22 let g:recording = '' 23 autocmd RecordingEnter * let g:recording = reg_recording() 24 call feedkeys("qqyyq", 'xt') 25 ]] 26 eq('q', eval('g:recording')) 27 end) 28 end) 29 30 describe('RecordingLeave', function() 31 before_each(clear) 32 it('works', function() 33 source_vim [[ 34 let g:recorded = 0 35 autocmd RecordingLeave * let g:recorded += 1 36 call feedkeys("qqyyq", 'xt') 37 ]] 38 eq(1, eval('g:recorded')) 39 end) 40 41 it('gives the correct reg_recorded()', function() 42 source_vim [[ 43 let g:recorded = 'a' 44 let g:recording = '' 45 autocmd RecordingLeave * let g:recording = reg_recording() 46 autocmd RecordingLeave * let g:recorded = reg_recorded() 47 call feedkeys("qqyyq", 'xt') 48 ]] 49 eq('q', eval 'g:recording') 50 eq('', eval 'g:recorded') 51 eq('q', eval 'reg_recorded()') 52 end) 53 54 it('populates v:event', function() 55 source_vim [[ 56 let g:regname = '' 57 let g:regcontents = '' 58 autocmd RecordingLeave * let g:regname = v:event.regname 59 autocmd RecordingLeave * let g:regcontents = v:event.regcontents 60 call feedkeys("qqyyq", 'xt') 61 ]] 62 eq('q', eval 'g:regname') 63 eq('yy', eval 'g:regcontents') 64 end) 65 66 it('resets v:event', function() 67 source_vim [[ 68 autocmd RecordingLeave * let g:event = v:event 69 call feedkeys("qqyyq", 'xt') 70 ]] 71 eq(0, eval 'len(v:event)') 72 end) 73 end)