LunarVim/tests/specs/config_loader_spec.lua
kylo252 10b9123b7d
test: run busted in sync mode (#4342)
* test: run busted in sync mode

* ci: update stable release version

* fix(mason): use recommended steps for sources sync
2023-08-27 08:44:07 +02:00

54 lines
1.8 KiB
Lua

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)