diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/functional/autocmd/termxx_spec.lua (renamed from test/functional/autocmd/termclose_spec.lua) | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/test/functional/autocmd/termclose_spec.lua b/test/functional/autocmd/termxx_spec.lua index 50bcf1af5a..b12c24b58d 100644 --- a/test/functional/autocmd/termclose_spec.lua +++ b/test/functional/autocmd/termxx_spec.lua @@ -9,8 +9,7 @@ local ok = helpers.ok local feed = helpers.feed local iswin = helpers.iswin - -describe('TermClose event', function() +describe('autocmd TermClose', function() before_each(function() clear() nvim('set_option', 'shell', nvim_dir .. '/shell-test') @@ -92,3 +91,37 @@ describe('TermClose event', function() feed('<c-c>:qa!<cr>') end) end) + +it('autocmd TermEnter, TermLeave', function() + clear() + command('let g:evs = []') + command('autocmd TermOpen * call add(g:evs, ["TermOpen", mode()])') + command('autocmd TermClose * call add(g:evs, ["TermClose", mode()])') + command('autocmd TermEnter * call add(g:evs, ["TermEnter", mode()])') + command('autocmd TermLeave * call add(g:evs, ["TermLeave", mode()])') + command('terminal') + + feed('i') + eq({ {'TermOpen', 'n'}, {'TermEnter', 't'}, }, eval('g:evs')) + feed([[<C-\><C-n>]]) + feed('A') + eq({ {'TermOpen', 'n'}, {'TermEnter', 't'}, {'TermLeave', 'n'}, {'TermEnter', 't'}, }, eval('g:evs')) + + -- TermLeave is also triggered by :quit. + command('split foo') + command('wincmd w') + feed('i') + command('q!') + eq( + { + {'TermOpen', 'n'}, + {'TermEnter', 't'}, + {'TermLeave', 'n'}, + {'TermEnter', 't'}, + {'TermLeave', 'n'}, + {'TermEnter', 't'}, + {'TermClose', 't'}, + {'TermLeave', 'n'}, + }, + eval('g:evs')) +end) |