aboutsummaryrefslogtreecommitdiff
path: root/test/functional/ex_cmds/wviminfo_spec.lua
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/ex_cmds/wviminfo_spec.lua')
-rw-r--r--test/functional/ex_cmds/wviminfo_spec.lua57
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)