diff options
Diffstat (limited to 'mac/.config/LunarVim/tests/specs/config_loader_spec.lua')
| -rw-r--r-- | mac/.config/LunarVim/tests/specs/config_loader_spec.lua | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/mac/.config/LunarVim/tests/specs/config_loader_spec.lua b/mac/.config/LunarVim/tests/specs/config_loader_spec.lua new file mode 100644 index 0000000..565f1a5 --- /dev/null +++ b/mac/.config/LunarVim/tests/specs/config_loader_spec.lua @@ -0,0 +1,54 @@ +local config = require "lvim.config" +local fmt = string.format + +describe("config-loader", function() + local user_config_path = join_paths(get_config_dir(), "config.lua") + local default_config_path = join_paths(get_lvim_base_dir(), "utils", "installer", "config.example.lua") + + before_each(function() + os.execute(fmt("cp -f %s %s", default_config_path, user_config_path)) + vim.cmd [[ + let v:errmsg = "" + let v:errors = [] + ]] + end) + + after_each(function() + local errmsg = vim.fn.eval "v:errmsg" + local exception = vim.fn.eval "v:exception" + local errors = vim.fn.eval "v:errors" + assert.equal("", errmsg) + assert.equal("", exception) + assert.True(vim.tbl_isempty(errors)) + end) + + it("should be able to find user-config", function() + assert.equal(user_config_path, get_config_dir() .. "/config.lua") + end) + + it("should be able to load user-config without errors", function() + config:load(user_config_path) + end) + + it("should be able to reload user-config without errors", function() + config:load(user_config_path) + local test_path = "/tmp/lvim" + os.execute(string.format([[echo "vim.opt.undodir = '%s'" >> %s]], test_path, user_config_path)) + config:reload() + vim.schedule(function() + assert.equal(vim.opt.undodir:get()[1], test_path) + end) + end) + + it("should not get interrupted by errors in user-config", function() + local test_path = "/tmp/lunarvim" + os.execute(string.format([[echo "vim.opt.undodir = '%s'" >> %s]], test_path, user_config_path)) + config:load(user_config_path) + assert.equal(vim.opt.undodir:get()[1], test_path) + require("lvim.core.log"):set_level "error" + lvim.log.level = "error" + os.execute(string.format("echo 'ignore_me()' >> %s", user_config_path)) + config:load(user_config_path) + assert.equal(vim.opt.undodir:get()[1], test_path) + end) +end) |
