require("plenary.async").tests.add_to_env() local oil = require("oil") local test_util = require("tests.test_util") a.describe("close", function() a.before_each(function() test_util.reset_editor() end) a.after_each(function() test_util.reset_editor() end) a.it("does not close buffer from visual mode", function() oil.open() test_util.wait_for_autocmd({ "User", pattern = "OilEnter" }) assert.equals("oil", vim.bo.filetype) test_util.feedkeys({ "V" }, 10) oil.close() assert.equals("oil", vim.bo.filetype) test_util.feedkeys({ "" }, 10) end) a.it("does not close buffer from operator-pending mode", function() oil.open() test_util.wait_for_autocmd({ "User", pattern = "OilEnter" }) assert.equals("oil", vim.bo.filetype) vim.api.nvim_feedkeys("d", "n", false) a.util.sleep(20) local mode = vim.api.nvim_get_mode().mode if mode:match("^no") then oil.close() assert.equals("oil", vim.bo.filetype) end vim.api.nvim_feedkeys(vim.api.nvim_replace_termcodes("", true, true, true), "n", false) a.util.sleep(20) end) a.it("closes buffer from normal mode", function() oil.open() test_util.wait_for_autocmd({ "User", pattern = "OilEnter" }) assert.equals("oil", vim.bo.filetype) oil.close() assert.not_equals("oil", vim.bo.filetype) end) end)