LunarVim/tests/config_loader_spec.lua

39 lines
1.4 KiB
Lua

local a = require "plenary.async_lib.tests"
local config = require "lvim.config"
local utils = require "lvim.utils"
a.describe("config-loader", function()
local user_config_path = config:get_user_config_path()
a.it("should be able to find user-config", function()
assert.equal(user_config_path, get_config_dir() .. "/config.lua")
end)
a.it("should be able to load user-config without errors", function()
config:load(user_config_path)
local errmsg = vim.fn.eval "v:errmsg"
local exception = vim.fn.eval "v:exception"
assert.equal("", errmsg) -- v:errmsg was not updated.
assert.equal("", exception)
end)
a.it("should be able to reload user-config without errors", function()
vim.opt.undodir = "/tmp"
assert.equal(vim.opt.undodir:get()[1], "/tmp")
config:reload()
assert.equal(vim.opt.undodir:get()[1], utils.join_paths(get_cache_dir(), "undo"))
end)
a.it("should not get interrupted by errors in user-config", function()
vim.opt.undodir = "/tmp"
assert.equal(vim.opt.undodir:get()[1], "/tmp")
os.execute(string.format("echo 'bad_string_test' >> %s", user_config_path))
local error_handler = function(msg)
return msg
end
local err = xpcall(config:reload(), error_handler)
assert.falsy(err)
assert.equal(vim.opt.undodir:get()[1], utils.join_paths(get_cache_dir(), "undo"))
os.execute(string.format("echo '' > %s", user_config_path))
end)
end)