From 7a5c7ace3ac169b2898a4c7d8abec42cf9e18003 Mon Sep 17 00:00:00 2001 From: Ellison Date: Tue, 28 Jun 2022 18:22:41 -0300 Subject: New configuration system and more (Ref #96) (#122) * initial work * adding more tests * updates * fixing overrides in groups with links * fix bg switch and some hl groups * adding languages hl groups * adding plugins highlights * stylua * removing base module and fixing lightline * adding terminal_color_* vars * adding new screenshot --- tests/gruvbox/gruvbox_spec.lua | 113 +++++++++++++++++++++++++++++++++++++++++ tests/minimal_init.lua | 11 ++++ 2 files changed, 124 insertions(+) create mode 100644 tests/gruvbox/gruvbox_spec.lua create mode 100644 tests/minimal_init.lua (limited to 'tests') diff --git a/tests/gruvbox/gruvbox_spec.lua b/tests/gruvbox/gruvbox_spec.lua new file mode 100644 index 0000000..9ab5cdc --- /dev/null +++ b/tests/gruvbox/gruvbox_spec.lua @@ -0,0 +1,113 @@ +require("plenary.reload").reload_module("gruvbox", true) +local gruvbox = require("gruvbox") + +describe("setup", function() + it("works with default values", function() + local expected = { + undercurl = true, + underline = true, + bold = true, + italic = true, + invert_selection = false, + invert_signs = false, + invert_tabline = false, + invert_intend_guides = false, + contrast = "hard", + overrides = {}, + } + + gruvbox.setup() + assert.are.same(gruvbox.config, expected) + end) + + it("works with config overrides", function() + local expected = { + undercurl = false, + underline = false, + bold = true, + italic = true, + invert_selection = false, + invert_signs = false, + invert_tabline = false, + invert_intend_guides = false, + contrast = "hard", + overrides = {}, + } + + gruvbox.setup({ undercurl = false, underline = false }) + assert.are.same(gruvbox.config, expected) + end) +end) + +describe("highlight overrides", function() + it("should override a hightlight color", function() + local config = { + overrides = { + Search = { fg = "#ff9900", bg = "#000000" }, + ColorColumn = { bg = "#ff9900" }, + }, + } + + gruvbox.setup(config) + gruvbox.load() + + local search_group_id = vim.api.nvim_get_hl_id_by_name("Search") + local search_values = { + background = vim.fn.synIDattr(search_group_id, "bg", "gui"), + foreground = vim.fn.synIDattr(search_group_id, "fg", "gui"), + } + + assert.are.same(search_values, { background = "#000000", foreground = "#ff9900" }) + + local color_column_group_id = vim.api.nvim_get_hl_id_by_name("ColorColumn") + local color_column_values = { + background = vim.fn.synIDattr(color_column_group_id, "bg", "gui"), + } + + assert.are.same(color_column_values, { background = "#ff9900" }) + end) + + it("should create new hightlights colors if they dont exist", function() + local config = { + overrides = { + Search = { fg = "#ff9900", bg = "#000000" }, + New = { bg = "#ff9900" }, + }, + } + + gruvbox.setup(config) + gruvbox.load() + + local search_group_id = vim.api.nvim_get_hl_id_by_name("Search") + local search_values = { + background = vim.fn.synIDattr(search_group_id, "bg", "gui"), + foreground = vim.fn.synIDattr(search_group_id, "fg", "gui"), + } + + assert.are.same(search_values, { background = "#000000", foreground = "#ff9900" }) + + local new_group_id = vim.api.nvim_get_hl_id_by_name("New") + local new_group_values = { + background = vim.fn.synIDattr(new_group_id, "bg", "gui"), + } + + assert.are.same(new_group_values, { background = "#ff9900" }) + end) + + it("should override links", function() + local config = { + overrides = { + Function = { bg = "#990000" }, + }, + } + + gruvbox.setup(config) + gruvbox.load() + + local group_id = vim.api.nvim_get_hl_id_by_name("Function") + local values = { + background = vim.fn.synIDattr(group_id, "bg", "gui"), + } + assert.are.same(values, { background = "#990000" }) + end) +end) diff --git a/tests/minimal_init.lua b/tests/minimal_init.lua new file mode 100644 index 0000000..b4c8c23 --- /dev/null +++ b/tests/minimal_init.lua @@ -0,0 +1,11 @@ +local plenary_dir = os.getenv("PLENARY_DIR") or "/tmp/plenary.nvim" +local is_not_a_directory = vim.fn.isdirectory(plenary_dir) == 0 +if is_not_a_directory then + vim.fn.system({ "git", "clone", "https://github.com/nvim-lua/plenary.nvim", plenary_dir }) +end + +vim.opt.rtp:append(".") +vim.opt.rtp:append(plenary_dir) + +vim.cmd("runtime plugin/plenary.vim") +require("plenary.busted") -- cgit v1.2.3