summaryrefslogtreecommitdiff
path: root/tests/config_loader_spec.lua
blob: 8e7ab339e40364311ce816674c906b520e8f3e78 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
local a = require "plenary.async_lib.tests"
local config = require "lvim.config"

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], 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("echo bad_string_test >> " .. 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], get_cache_dir() .. "/undo")
  end)
end)