lualine.nvim/lua/tests/spec/config_spec.lua

181 lines
6.0 KiB
Lua

local eq = assert.are.same
describe('config parsing', function()
local config_module = require 'lualine_config'
describe('options', function()
describe('icons_enabled', function()
it('default', function()
local config = config_module.apply_configuration({})
eq(config.options.icons_enabled, true)
end)
it('custom', function()
local config = {options = {icons_enabled = false}}
config = config_module.apply_configuration(config)
eq(config.options.icons_enabled, false)
end)
end)
describe('theme', function()
it('default', function()
local config = config_module.apply_configuration({})
eq(config.options.theme, 'auto')
end)
it('custom', function()
local config = {options = {theme = 'nord'}}
config = config_module.apply_configuration(config)
eq(config.options.theme, 'nord')
config = {options = {theme = {}}}
config = config_module.apply_configuration(config)
eq(config.options.theme, {})
end)
end)
describe('separators', function()
it('default', function()
local config = config_module.apply_configuration({})
eq(config.options.component_separators, {'', ''})
eq(config.options.section_separators, {'', ''})
end)
it('double separators', function()
local config = {
options = {
component_separators = {'a', 'b'},
section_separators = {'c', 'd'}
}
}
config = config_module.apply_configuration(config)
eq(config.options.component_separators, {'a', 'b'})
eq(config.options.section_separators, {'c', 'd'})
end)
describe('single separator', function()
it('string', function()
local config = {
options = {component_separators = 'a', section_separators = 'b'}
}
config = config_module.apply_configuration(config)
eq(config.options.component_separators, {'a', 'a'})
eq(config.options.section_separators, {'b', 'b'})
end)
it('table', function()
local config = {
options = {component_separators = {'a'}, section_separators = {'b'}}
}
config = config_module.apply_configuration(config)
eq(config.options.component_separators, {'a', 'a'})
eq(config.options.section_separators, {'b', 'b'})
end)
end)
it('no seprarators', function()
local config = {
options = {component_separators = {}, section_separators = {}}
}
config = config_module.apply_configuration(config)
eq(config.options.component_separators, {})
eq(config.options.section_separators, {})
end)
end)
describe('disabled filetypes', function()
it('default', function()
local config = config_module.apply_configuration({})
eq(config.options.disabled_filetypes, {})
end)
it('custom', function()
local config = {options = {disabled_filetypes = {'lua'}}}
config = config_module.apply_configuration(config)
eq(config.options.disabled_filetypes, {'lua'})
end)
end)
describe('non default global option', function()
it('default', function()
local config = {options = {}}
config = config_module.apply_configuration(config)
eq(config.options.non_default_global_option, nil)
end)
it('custom', function()
local config = {options = {non_default_global_option = 1}}
config = config_module.apply_configuration(config)
eq(config.options.non_default_global_option, 1)
end)
end)
end)
describe('sections', function()
it('default', function()
local config = {}
config = config_module.apply_configuration(config)
local lualine_default_sections = {
lualine_a = {'mode'},
lualine_b = {'branch', 'diff',
{'diagnostics', sources={'nvim_lsp', 'coc'}}},
lualine_c = {'filename'},
lualine_x = {'encoding', 'fileformat', 'filetype'},
lualine_y = {'progress'},
lualine_z = {'location'}
}
eq(config.sections, lualine_default_sections)
end)
it('custom', function()
local custom_sections = {
lualine_a = {{'mode', lower = true}},
lualine_b = {'branch', {'branch', lower = true}},
lualine_c = nil,
lualine_x = {}
}
local expected_sections = {
lualine_a = {{'mode', lower = true}},
lualine_b = {'branch', {'branch', lower = true}},
lualine_c = {'filename'},
lualine_x = {},
lualine_y = {'progress'},
lualine_z = {'location'}
}
local config = {sections = custom_sections}
config = config_module.apply_configuration(config)
eq(config.sections, expected_sections)
end)
end)
describe('inactive_sections', function() end)
describe('tabline', function()
it('default', function()
local config = {}
config = config_module.apply_configuration(config)
eq(config.tabline, {})
end)
it('custom', function()
local custom_sections = {
lualine_a = {{'mode', lower = true}},
lualine_b = {'branch', {'branch', lower = true}},
lualine_c = nil,
lualine_x = {}
}
local expected_sections = {
lualine_a = {{'mode', lower = true}},
lualine_b = {'branch', {'branch', lower = true}},
lualine_x = {}
}
local config = {tabline = custom_sections}
config = config_module.apply_configuration(config)
eq(config.tabline, expected_sections)
end)
end)
describe('extensions', function()
it('default', function()
local config = {options = {}}
config = config_module.apply_configuration(config)
eq(config.extensions, {})
end)
it('custom', function()
local config = {extensions = {'fugitive'}}
config = config_module.apply_configuration(config)
eq(config.extensions, {'fugitive'})
end)
end)
end)