From 7140a149a09d2d31d71603a6cc4a9cee44c69c9e Mon Sep 17 00:00:00 2001 From: zjp Date: Wed, 24 Aug 2022 15:50:33 +0800 Subject: [PATCH 1/4] feat(tests): tiny testing --- lua/litee/lib/highlights/init.lua | 102 +++++++++++++++--------------- tests/check_highlights.lua | 24 +++++++ tests/init.lua | 23 +++++++ 3 files changed, 99 insertions(+), 50 deletions(-) create mode 100644 tests/check_highlights.lua create mode 100644 tests/init.lua diff --git a/lua/litee/lib/highlights/init.lua b/lua/litee/lib/highlights/init.lua index 6540d78..653703f 100644 --- a/lua/litee/lib/highlights/init.lua +++ b/lua/litee/lib/highlights/init.lua @@ -13,68 +13,70 @@ M.hls = { SelectFiletreeHL = "LTSelectFiletree", NormalSB = "LTNormalSB" } +M.dark = { + LTBoolean = 'hi LTBoolean guifg=#0087af guibg=None', + LTConstant = 'hi LTConstant guifg=#0087af guibg=None', + LTConstructor = 'hi LTConstructor guifg=#4DC5C6 guibg=None', + LTField = 'hi LTField guifg=#0087af guibg=None', + LTFunction = 'hi LTFunction guifg=#988ACF guibg=None', + LTMethod = 'hi LTMethod guifg=#0087af guibg=None', + LTNamespace = 'hi LTNamespace guifg=#87af87 guibg=None', + LTNumber = 'hi LTNumber guifg=#9b885c guibg=None', + LTOperator = 'hi LTOperator guifg=#988ACF guibg=None', + LTParameter = 'hi LTParameter guifg=#988ACF guibg=None', + LTParameterReference = 'hi LTParameterReference guifg=#4DC5C6 guibg=None', + LTString = 'hi LTString guifg=#af5f5f guibg=None', + LTSymbol = 'hi LTSymbol guifg=#87afd7 gui=underline', + LTSymbolDetail = 'hi LTSymbolDetail ctermfg=024 cterm=italic guifg=#988ACF gui=italic', + LTSymbolJump = 'hi LTSymbolJump ctermfg=015 ctermbg=110 cterm=italic,bold,underline guifg=#464646 guibg=#87afd7 gui=italic,bold', + LTSymbolJumpRefs = 'hi LTSymbolJumpRefs ctermfg=015 ctermbg=110 cterm=italic,bold,underline guifg=#464646 guibg=#9b885c gui=italic,bold', + LTType = 'hi LTType guifg=#9b885c guibg=None', + LTURI = 'hi LTURI guifg=#988ACF guibg=None', + LTIndentGuide = 'hi LTIndentGuide guifg=None guibg=None', + LTExpandedGuide = 'hi LTExpandedGuide guifg=None guibg=None', + LTCollapsedGuide = 'hi LTCollapsedGuide guifg=None guibg=None', + LTSelectFiletree = 'hi LTSelectFiletree ctermbg=131 ctermfg=246 cterm=None guibg=#af5f5f guifg=#e4e4e4 gui=None', + -- LTGitPullRequest = 'hi LTGitPullRequest guifg=white guibg=None', +} +M.light = { + LTBoolean = 'hi LTBoolean guifg=#005f87 guibg=None', + LTConstant = 'hi LTConstant guifg=#005f87 guibg=None', + LTConstructor = 'hi LTConstructor guifg=#9b885c guibg=None', + LTField = 'hi LTField guifg=#005f87 guibg=None', + LTFunction = 'hi LTFunction guifg=#806CCF guibg=None', + LTMethod = 'hi LTMethod guifg=#005f87 guibg=None', + LTNamespace = 'hi LTNamespace guifg=#87af87 guibg=None', + LTNumber = 'hi LTNumber guifg=#9b885c guibg=None', + LTOperator = 'hi LTOperator guifg=#806CCF guibg=None', + LTParameter = 'hi LTParameter guifg=#806CCF guibg=None', + LTParameterReference = 'hi LTParameterReference guifg=#268889 guibg=None', + LTString = 'hi LTString guifg=#af5f5f guibg=None', + LTSymbol = 'hi LTSymbol guifg=#806CCF gui=underline', + LTSymbolDetail = 'hi LTSymbolDetail ctermfg=024 cterm=italic guifg=#005f87 gui=italic', + LTSymbolJump = 'hi LTSymbolJump ctermfg=015 ctermbg=110 cterm=italic,bold,underline guifg=#464646 guibg=#87afd7 gui=italic,bold', + LTSymbolJumpRefs = 'hi LTSymbolJumpRefs ctermfg=015 ctermbg=110 cterm=italic,bold,underline guifg=#464646 guibg=#9b885c gui=italic,bold', + LTType = 'hi LTType guifg=#268889 guibg=None', + LTURI = 'hi LTURI guifg=#806CCF guibg=None', + LTIndentGuide = 'hi LTIndentGuide guifg=None guibg=None', + LTExpandedGuide = 'hi LTExpandedGuide guifg=None guibg=None', + LTCollapsedGuide = 'hi LTCollapsedGuide guifg=None guibg=None', + LTSelectFiletree = 'hi LTSelectFiletree ctermbg=131 ctermfg=246 cterm=None guibg=#af5f5f guifg=#e4e4e4 gui=None' +} -- setup_default_highlights configures a list of default -- highlights for the litee.nvim library. function M.setup_default_highlights() - local dark = { - LTBoolean = 'hi LTBoolean guifg=#0087af guibg=None', - LTConstant = 'hi LTConstant guifg=#0087af guibg=None', - LTConstructor = 'hi LTConstructor guifg=#4DC5C6 guibg=None', - LTField = 'hi LTField guifg=#0087af guibg=None', - LTFunction = 'hi LTFunction guifg=#988ACF guibg=None', - LTMethod = 'hi LTMethod guifg=#0087af guibg=None', - LTNamespace = 'hi LTNamespace guifg=#87af87 guibg=None', - LTNumber = 'hi LTNumber guifg=#9b885c guibg=None', - LTOperator = 'hi LTOperator guifg=#988ACF guibg=None', - LTParameter = 'hi LTParameter guifg=#988ACF guibg=None', - LTParameterReference = 'hi LTParameterReference guifg=#4DC5C6 guibg=None', - LTString = 'hi LTString guifg=#af5f5f guibg=None', - LTSymbol = 'hi LTSymbol guifg=#87afd7 gui=underline', - LTSymbolDetail = 'hi LTSymbolDetail ctermfg=024 cterm=italic guifg=#988ACF gui=italic', - LTSymbolJump = 'hi LTSymbolJump ctermfg=015 ctermbg=110 cterm=italic,bold,underline guifg=#464646 guibg=#87afd7 gui=italic,bold', - LTSymbolJumpRefs = 'hi LTSymbolJumpRefs ctermfg=015 ctermbg=110 cterm=italic,bold,underline guifg=#464646 guibg=#9b885c gui=italic,bold', - LTType = 'hi LTType guifg=#9b885c guibg=None', - LTURI = 'hi LTURI guifg=#988ACF guibg=None', - LTIndentGuide = 'hi LTIndentGuide guifg=None guibg=None', - LTExpandedGuide = 'hi LTExpandedGuide guifg=None guibg=None', - LTCollapsedGuide = 'hi LTCollapsedGuide guifg=None guibg=None', - LTSelectFiletree = 'hi LTSelectFiletree ctermbg=131 ctermfg=246 cterm=None guibg=#af5f5f guifg=#e4e4e4 gui=None' - } - local light = { - LTBoolean = 'hi LTBoolean guifg=#005f87 guibg=None', - LTConstant = 'hi LTConstant guifg=#005f87 guibg=None', - LTConstructor = 'hi LTConstructor guifg=#9b885c guibg=None', - LTField = 'hi LTField guifg=#005f87 guibg=None', - LTFunction = 'hi LTFunction guifg=#806CCF guibg=None', - LTMethod = 'hi LTMethod guifg=#005f87 guibg=None', - LTNamespace = 'hi LTNamespace guifg=#87af87 guibg=None', - LTNumber = 'hi LTNumber guifg=#9b885c guibg=None', - LTOperator = 'hi LTOperator guifg=#806CCF guibg=None', - LTParameter = 'hi LTParameter guifg=#806CCF guibg=None', - LTParameterReference = 'hi LTParameterReference guifg=#268889 guibg=None', - LTString = 'hi LTString guifg=#af5f5f guibg=None', - LTSymbol = 'hi LTSymbol guifg=#806CCF gui=underline', - LTSymbolDetail = 'hi LTSymbolDetail ctermfg=024 cterm=italic guifg=#005f87 gui=italic', - LTSymbolJump = 'hi LTSymbolJump ctermfg=015 ctermbg=110 cterm=italic,bold,underline guifg=#464646 guibg=#87afd7 gui=italic,bold', - LTSymbolJumpRefs = 'hi LTSymbolJumpRefs ctermfg=015 ctermbg=110 cterm=italic,bold,underline guifg=#464646 guibg=#9b885c gui=italic,bold', - LTType = 'hi LTType guifg=#268889 guibg=None', - LTURI = 'hi LTURI guifg=#806CCF guibg=None', - LTIndentGuide = 'hi LTIndentGuide guifg=None guibg=None', - LTExpandedGuide = 'hi LTExpandedGuide guifg=None guibg=None', - LTCollapsedGuide = 'hi LTCollapsedGuide guifg=None guibg=None', - LTSelectFiletree = 'hi LTSelectFiletree ctermbg=131 ctermfg=246 cterm=None guibg=#af5f5f guifg=#e4e4e4 gui=None' - } + local bg = vim.api.nvim_get_option("background") if bg == "dark" then - for hl_name, hl in pairs(dark) do + for hl_name, hl in pairs(M.dark) do if vim.fn.hlexists(hl_name) == 0 then vim.cmd(hl) end end end if bg == "light" then - for hl_name, hl in pairs(light) do + for hl_name, hl in pairs(M.light) do if vim.fn.hlexists(hl_name) == 0 then vim.cmd(hl) end diff --git a/tests/check_highlights.lua b/tests/check_highlights.lua new file mode 100644 index 0000000..779e6ed --- /dev/null +++ b/tests/check_highlights.lua @@ -0,0 +1,24 @@ +-- local litee = require("../lua/litee/lib/") +local highlights = dofile("/root/.local/share/nvim/site/pack/packer/start/litee.nvim/lua/litee/lib/highlights/init.lua") +local hls, dark, light = highlights.hls, highlights.dark, highlights.light +local M, dark_fields, light_fields = {}, {}, {} +for key, _ in pairs(dark) do + dark_fields[key] = true +end +for key, _ in pairs(light) do + light_fields[key] = true +end + +function M.check_dark_light_fields(desc) + for key, _ in pairs(dark_fields) do + assert(light_fields[key], "light_feild lacks " .. key) + end + for key, _ in pairs(light_fields) do + assert(dark_fields[key], "dark_feild lacks " .. key) + end + if desc then + return "Fields are the same in light & dark highlights." + end +end + +return M diff --git a/tests/init.lua b/tests/init.lua new file mode 100644 index 0000000..e529910 --- /dev/null +++ b/tests/init.lua @@ -0,0 +1,23 @@ +-- Testing +-- * run test in the project root, `DESC` is optional: +-- * nvim -u NONE --headless -c ":luafile tests/init.lua" +quit +-- * DESC=1 nvim -u NONE --headless -c ":luafile tests/init.lua" +quit +-- * add test: +-- 1. append the file path to the path table +-- 2. the testing file returns a table containing testing functions +-- 3. testing functions takes an optional `desc` argument which tells the purpose of testing + +local function test(path, desc) + for name, fn in pairs(dofile(path)) do + print(path, '::', name, '-- PASS --', fn(desc)) + end +end + +local desc = os.getenv("DESC") +local path = { + "tests/check_highlights.lua", +} + +for _, p in ipairs(path) do + test(p, desc) +end From 28e5d03ec84cf9c6165423f5a87af433174e8287 Mon Sep 17 00:00:00 2001 From: zjp Date: Wed, 24 Aug 2022 17:01:54 +0800 Subject: [PATCH 2/4] chore(testing): sample snippet & print fmt --- tests/init.lua | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/tests/init.lua b/tests/init.lua index e529910..8568ab7 100644 --- a/tests/init.lua +++ b/tests/init.lua @@ -1,15 +1,22 @@ -- Testing --- * run test in the project root, `DESC` is optional: +-- * Run test in the project root, `DESC` is optional: -- * nvim -u NONE --headless -c ":luafile tests/init.lua" +quit -- * DESC=1 nvim -u NONE --headless -c ":luafile tests/init.lua" +quit --- * add test: +-- * Add test: -- 1. append the file path to the path table -- 2. the testing file returns a table containing testing functions -- 3. testing functions takes an optional `desc` argument which tells the purpose of testing +-- * Sample testing function: +-- function M.name(desc) +-- -- testing code here +-- if desc then +-- return "description" +-- end +-- end local function test(path, desc) for name, fn in pairs(dofile(path)) do - print(path, '::', name, '-- PASS --', fn(desc)) + print(string.format("%-30s :: %-30s -- PASS -- ", path, name), fn(desc)) end end From dad9c5c5e7db58c6edb528634b284c4bdfbe51b9 Mon Sep 17 00:00:00 2001 From: zjp Date: Wed, 24 Aug 2022 17:02:57 +0800 Subject: [PATCH 3/4] chore(testing): fix dofile path & add more tests --- tests/check_highlights.lua | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/tests/check_highlights.lua b/tests/check_highlights.lua index 779e6ed..c4d82a4 100644 --- a/tests/check_highlights.lua +++ b/tests/check_highlights.lua @@ -1,5 +1,5 @@ --- local litee = require("../lua/litee/lib/") -local highlights = dofile("/root/.local/share/nvim/site/pack/packer/start/litee.nvim/lua/litee/lib/highlights/init.lua") +local litee = "lua/litee/lib/" +local highlights = dofile(litee .. "highlights/init.lua") local hls, dark, light = highlights.hls, highlights.dark, highlights.light local M, dark_fields, light_fields = {}, {}, {} for key, _ in pairs(dark) do @@ -9,7 +9,16 @@ for key, _ in pairs(light) do light_fields[key] = true end -function M.check_dark_light_fields(desc) +function M.hls_dark(desc) + for _, hl in pairs(hls) do + assert(dark_fields[hl], "dark_feild lacks " .. hl) + end + if desc then + return "The highlights in hls are all defined." + end +end + +function M.dark_light_fields(desc) for key, _ in pairs(dark_fields) do assert(light_fields[key], "light_feild lacks " .. key) end @@ -21,4 +30,14 @@ function M.check_dark_light_fields(desc) end end +function M.icon_hls(desc) + local icons = dofile(litee .. "icons/init.lua") + for _, hl in pairs(icons.icon_hls) do + assert(dark_fields[hl], hl .. "is not defined.") + end + if desc then + return "All highlights in icon_hls are defined." + end +end + return M From e4f185d162dee614bba5128354ed0cd5b5918572 Mon Sep 17 00:00:00 2001 From: zjp Date: Wed, 24 Aug 2022 17:06:07 +0800 Subject: [PATCH 4/4] test(hls_dark): rm LTNormalSB LTNormalSB is nowhere needed --- lua/litee/lib/highlights/init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lua/litee/lib/highlights/init.lua b/lua/litee/lib/highlights/init.lua index 653703f..b63dfd9 100644 --- a/lua/litee/lib/highlights/init.lua +++ b/lua/litee/lib/highlights/init.lua @@ -11,7 +11,7 @@ M.hls = { ExpandedGuideHL = "LTExpandedGuide", CollapsedGuideHL = "LTCollapsedGuide", SelectFiletreeHL = "LTSelectFiletree", - NormalSB = "LTNormalSB" + -- NormalSB = "LTNormalSB" } M.dark = { LTBoolean = 'hi LTBoolean guifg=#0087af guibg=None',