summaryrefslogtreecommitdiff
path: root/tests/specs/config_loader_spec.lua
diff options
context:
space:
mode:
authorkylo252 <[email protected]>2022-01-02 14:53:01 +0100
committerGitHub <[email protected]>2022-01-02 14:53:01 +0100
commitb3cfd165fbca4c8b595ed577027a5171e33a00e9 (patch)
treebfc6526edf613b294733d46ff823d69d6e9a58df /tests/specs/config_loader_spec.lua
parent73bf039c6333ba9cb3af93437b26c41e14566c47 (diff)
refactor(test): cleanup test utilities (#2132)
Diffstat (limited to 'tests/specs/config_loader_spec.lua')
-rw-r--r--tests/specs/config_loader_spec.lua39
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/specs/config_loader_spec.lua b/tests/specs/config_loader_spec.lua
new file mode 100644
index 00000000..1aef0974
--- /dev/null
+++ b/tests/specs/config_loader_spec.lua
@@ -0,0 +1,39 @@
+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)