123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- -- Tests for 'directory' option.
- -- - ".", in same dir as file
- -- - "./dir", in directory relative to file
- -- - "dir", in directory relative to current dir
- local t = require('test.testutil')
- local n = require('test.functional.testnvim')()
- local eq = t.eq
- local neq = t.neq
- local poke_eventloop = n.poke_eventloop
- local fn = n.fn
- local api = n.api
- local clear = n.clear
- local insert = n.insert
- local command = n.command
- local write_file = t.write_file
- local mkdir = t.mkdir
- local function ls_dir_sorted(dirname)
- local files = {}
- for f in vim.fs.dir(dirname) do
- if f ~= '.' and f ~= '..' then
- table.insert(files, f)
- end
- end
- table.sort(files)
- return files
- end
- describe("'directory' option", function()
- setup(function()
- local text = [[
- start of testfile
- line 2 Abcdefghij
- line 3 Abcdefghij
- end of testfile
- ]]
- write_file('Xtest1', text)
- mkdir('Xtest.je')
- mkdir('Xtest2')
- write_file('Xtest2/Xtest3', text)
- clear()
- end)
- teardown(function()
- command('%bwipe!')
- api.nvim_set_option_value('swapfile', false, {})
- api.nvim_set_option_value('directory', '.', {})
- n.rmdir('Xtest.je')
- n.rmdir('Xtest2')
- os.remove('Xtest1')
- end)
- it('is working', function()
- insert([[
- start of testfile
- line 2 Abcdefghij
- line 3 Abcdefghij
- end of testfile]])
- api.nvim_set_option_value('swapfile', true, {})
- api.nvim_set_option_value('directory', '.', {})
- -- sanity check: files should not exist yet.
- eq(nil, vim.uv.fs_stat('.Xtest1.swp'))
- command('edit! Xtest1')
- poke_eventloop()
- eq('Xtest1', fn.buffer_name('%'))
- -- Verify that the swapfile exists. In the legacy test this was done by
- -- reading the output from :!ls.
- neq(nil, vim.uv.fs_stat('.Xtest1.swp'))
- api.nvim_set_option_value('directory', './Xtest2,.', {})
- command('edit Xtest1')
- poke_eventloop()
- -- swapfile should no longer exist in CWD.
- eq(nil, vim.uv.fs_stat('.Xtest1.swp'))
- eq({ 'Xtest1.swp', 'Xtest3' }, ls_dir_sorted('Xtest2'))
- api.nvim_set_option_value('directory', 'Xtest.je', {})
- command('bdelete')
- command('edit Xtest2/Xtest3')
- eq(true, api.nvim_get_option_value('swapfile', {}))
- poke_eventloop()
- eq({ 'Xtest3' }, ls_dir_sorted('Xtest2'))
- eq({ 'Xtest3.swp' }, ls_dir_sorted('Xtest.je'))
- end)
- end)
|