mirror of
https://github.com/stevearc/aerial.nvim
synced 2024-09-07 18:34:50 +02:00
141 lines
3.7 KiB
Lua
141 lines
3.7 KiB
Lua
local config = require("aerial.config")
|
|
|
|
local function reset()
|
|
package.loaded["aerial.config"] = nil
|
|
config = require("aerial.config")
|
|
end
|
|
|
|
describe("config", function()
|
|
before_each(function()
|
|
reset()
|
|
end)
|
|
|
|
it("falls back to default options", function()
|
|
config.setup()
|
|
assert.equals(config.attach_mode, "window")
|
|
end)
|
|
|
|
-- Filetype maps
|
|
it("reads the default value for filetype map option", function()
|
|
config.setup()
|
|
assert.equals(config.open_automatic(0), false)
|
|
end)
|
|
it("reads the filetype default value for filetype map option", function()
|
|
config.setup({
|
|
manage_folds = {
|
|
["_"] = true,
|
|
},
|
|
})
|
|
assert.equals(config.manage_folds(0), true)
|
|
end)
|
|
it("reads the filetype value for filetype map option", function()
|
|
config.setup({
|
|
manage_folds = {
|
|
fake_ft = true,
|
|
},
|
|
})
|
|
vim.api.nvim_buf_set_option(0, "filetype", "fake_ft")
|
|
assert.equals(config.manage_folds(0), true)
|
|
end)
|
|
it("reads the filetype value when using a compound filetype", function()
|
|
config.setup({
|
|
manage_folds = {
|
|
fake_ft = true,
|
|
},
|
|
})
|
|
vim.api.nvim_buf_set_option(0, "filetype", "fake_ft.extension")
|
|
assert.equals(config.manage_folds(0), true)
|
|
end)
|
|
|
|
it("Calls the open_automatic function", function()
|
|
config.setup({
|
|
open_automatic = function()
|
|
return true
|
|
end,
|
|
})
|
|
assert.equals(config.open_automatic(), true)
|
|
end)
|
|
|
|
-- Filter kind
|
|
it("reads the filter_kind option", function()
|
|
config.setup({
|
|
filter_kind = { "Function" },
|
|
})
|
|
local fk = config.get_filter_kind_map(0)
|
|
assert.equals(nil, fk.Class)
|
|
assert.equals(true, fk.Function)
|
|
end)
|
|
it("reads the filter_kind option from filetype map", function()
|
|
config.setup({
|
|
filter_kind = { foo = { "Function" } },
|
|
})
|
|
vim.api.nvim_buf_set_option(0, "filetype", "foo")
|
|
local fk = config.get_filter_kind_map(0)
|
|
assert.equals(nil, fk.Class)
|
|
assert.equals(true, fk.Function)
|
|
end)
|
|
it("recognizes when filter_kind is false", function()
|
|
config.setup({
|
|
filter_kind = { foo = false },
|
|
})
|
|
vim.api.nvim_buf_set_option(0, "filetype", "foo")
|
|
local fk = config.get_filter_kind_map(0)
|
|
assert.equals(true, fk.Class)
|
|
assert.equals(true, fk.Function)
|
|
end)
|
|
|
|
-- Icons
|
|
it("reads icons from the default table", function()
|
|
config.setup({ nerd_font = true, use_icon_provider = false })
|
|
assert.equals(" ", config.get_icon(0, "Function", false))
|
|
end)
|
|
it("reads icons from setup var", function()
|
|
config.setup({
|
|
nerd_font = true,
|
|
icons = {
|
|
Function = "*",
|
|
},
|
|
use_icon_provider = false,
|
|
})
|
|
assert.equals("*", config.get_icon(0, "Function", false))
|
|
assert.equals(" ", config.get_icon(0, "Method", false))
|
|
end)
|
|
it("fetches the collapsed version of icon", function()
|
|
config.setup({
|
|
icons = {
|
|
FunctionCollapsed = "a",
|
|
},
|
|
})
|
|
assert.equals("a", config.get_icon(0, "Function", true))
|
|
end)
|
|
it("defaults to 'Collapsed' for collapsed icons", function()
|
|
config.setup({
|
|
icons = {
|
|
Collapsed = "a",
|
|
},
|
|
})
|
|
assert.equals("a", config.get_icon(0, "Function", true))
|
|
end)
|
|
it("uses filetype overrides for icons", function()
|
|
config.setup({
|
|
icons = {
|
|
foo = {
|
|
Function = "a",
|
|
},
|
|
},
|
|
})
|
|
vim.api.nvim_buf_set_option(0, "filetype", "foo")
|
|
assert.equals("a", config.get_icon(0, "Function", false))
|
|
end)
|
|
it("falls back to '_' filetype if no match", function()
|
|
config.setup({
|
|
icons = {
|
|
["_"] = {
|
|
Function = "a",
|
|
},
|
|
},
|
|
})
|
|
vim.api.nvim_buf_set_option(0, "filetype", "foo")
|
|
assert.equals("a", config.get_icon(0, "Function", false))
|
|
end)
|
|
end)
|