diff options
Diffstat (limited to 'test/functional/ex_cmds/wviminfo_spec.lua')
-rw-r--r-- | test/functional/ex_cmds/wviminfo_spec.lua | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/test/functional/ex_cmds/wviminfo_spec.lua b/test/functional/ex_cmds/wviminfo_spec.lua new file mode 100644 index 0000000000..21176f1845 --- /dev/null +++ b/test/functional/ex_cmds/wviminfo_spec.lua @@ -0,0 +1,57 @@ +local helpers, lfs = require('test.functional.helpers'), require('lfs') +local clear, execute, eq, neq, spawn, nvim_prog, set_session, wait = + helpers.clear, helpers.execute, helpers.eq, helpers.neq, helpers.spawn, + helpers.nvim_prog, helpers.set_session, helpers.wait + +describe(':wviminfo', function() + local viminfo_file = 'wviminfo_test' + local session + + before_each(function() + if session then + session:exit(0) + end + + -- Override the default session because we need 'swapfile' for these tests. + local session = spawn({nvim_prog, '-u', 'NONE', '--embed', + '--cmd', 'set swapfile'}) + set_session(session) + + os.remove(viminfo_file) + end) + + it('creates a viminfo file', function() + -- file should _not_ exist + eq(nil, lfs.attributes(viminfo_file)) + execute('wv! '..viminfo_file) + wait() + -- file _should_ exist + neq(nil, lfs.attributes(viminfo_file)) + end) + + it('overwrites existing files', function() + local text = 'wviminfo test' + + -- Create a dummy file + local fp = io.open(viminfo_file, 'w') + fp:write(text) + fp:flush() + fp:close() + + -- sanity check + eq(text, io.open(viminfo_file):read()) + neq(nil, lfs.attributes(viminfo_file)) + + execute('wv! '..viminfo_file) + wait() + + -- File should have been overwritten with a viminfo file. + local line1 = io.lines(viminfo_file)() + assert(nil ~= string.find(line1, 'This viminfo file was generated by Nvim'), + viminfo_file..' should be a viminfo-formatted file') + end) + + teardown(function() + os.remove(viminfo_file) + end) +end) |