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

180 lines
6.1 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)