36 lines
1.1 KiB
Lua
36 lines
1.1 KiB
Lua
|
local luassert = require 'luassert'
|
||
|
local M = {}
|
||
|
|
||
|
M.eq = luassert.are.same
|
||
|
M.neq = luassert.are_not.same
|
||
|
M.meths = setmetatable({}, {
|
||
|
__index = function(_, key) return vim.api['nvim_' .. key] end
|
||
|
})
|
||
|
|
||
|
-- Checks ouput of a component
|
||
|
M.assert_component = function(component, opts, result)
|
||
|
-- for testing global options
|
||
|
if component == nil then component = 'special.function_component' end
|
||
|
local comp = require('lualine.components.' .. component):new(opts)
|
||
|
M.eq(result, comp:draw(opts.hl))
|
||
|
end
|
||
|
|
||
|
-- sets defaults for component options
|
||
|
M.build_component_opts = function(opts)
|
||
|
if not opts then opts = {} end
|
||
|
if opts[1] == nil then opts[1] = function() return 'test' end end
|
||
|
if not opts.self then opts.self = {section = 'lualine_c'} end
|
||
|
if not opts.theme then opts.theme = 'gruvbox' end
|
||
|
if not opts.hl then opts.hl = '' end
|
||
|
if opts.icons_enabled == nil then opts.icons_enabled = true end
|
||
|
if not opts.component_separators then
|
||
|
opts.component_separators = {'', ''}
|
||
|
end
|
||
|
if not opts.section_separators then opts.section_separators = {'', ''} end
|
||
|
return opts
|
||
|
end
|
||
|
|
||
|
M.P = function(t) print(vim.inspect(t)) end
|
||
|
|
||
|
return M
|