neovim/test/functional/legacy/005_bufleave_delete_buffer_spec.lua
Björn Linse 07cc231142 A Mudholland Dr. Recast
The commit summary maybe does not make sense, but calling a function
that does not wait on anything `wait()` makes even less sense.
2020-10-19 21:48:06 +02:00

73 lines
1.7 KiB
Lua

-- Test for autocommand that deletes the current buffer on BufLeave event.
-- Also test deleting the last buffer, should give a new, empty buffer.
local helpers = require('test.functional.helpers')(after_each)
local clear, feed, insert = helpers.clear, helpers.feed, helpers.insert
local command, expect = helpers.command, helpers.expect
local poke_eventloop = helpers.poke_eventloop
describe('test5', function()
setup(clear)
-- luacheck: ignore 621 (Indentation)
it('is working', function()
insert([[
start of test file Xxx
vim: set noai :
this is a test
this is a test
this is a test
this is a test
end of test file Xxx]])
command('w! Xxx0')
command('au BufLeave Xxx bwipe')
command('/start of')
-- Write test file Xxx.
command('.,/end of/w! Xxx')
-- Split to Xxx.
command('sp Xxx')
-- Delete buffer Xxx, now we're back here.
command('bwipe')
feed('G?this is a<cr>')
feed('othis is some more text<esc>')
poke_eventloop()
-- Append some text to this file.
-- Write current file contents.
command('?start?,$yank A')
-- Delete current buffer, get an empty one.
command('bwipe!')
-- Append an extra line to the output register.
feed('ithis is another test line<esc>:yank A<cr>')
poke_eventloop()
-- Output results
command('%d')
command('0put a')
command('$d')
-- Assert buffer contents.
expect([[
start of test file Xxx
vim: set noai :
this is a test
this is a test
this is a test
this is a test
this is some more text
end of test file Xxx
this is another test line]])
end)
teardown(function()
os.remove('Xxx')
os.remove('Xxx0')
end)
end)