aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorgoogle-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>2025-06-25 18:00:30 +0000
committergoogle-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>2025-06-25 18:00:30 +0000
commita38d3d9a294f08d21ab8733234e9f398821a95d9 (patch)
tree3a717d662d52612633a2eeb86bcc0203ada0da4b /tests
parent00e38a379bab3389e187b3953566d67d494dfddd (diff)
downloadgruvbox-a38d3d9a294f08d21ab8733234e9f398821a95d9.tar.gz
gruvbox-a38d3d9a294f08d21ab8733234e9f398821a95d9.tar.xz
Fix: Make multiple calls to setup() independent
Previously, multiple calls to `gruvbox.setup()` would merge configurations, leading to unexpected behavior when trying to reset or change specific settings like `overrides` or `contrast`. This commit addresses the issue by ensuring that each call to `setup()` starts with a fresh copy of the default configuration before applying the user-provided settings. This change makes calls to `setup()` idempotent and independent of previous calls, as suggested in issue #402. A new test case has been added to verify this behavior.
Diffstat (limited to 'tests')
-rw-r--r--tests/gruvbox/gruvbox_spec.lua29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/gruvbox/gruvbox_spec.lua b/tests/gruvbox/gruvbox_spec.lua
index d73d832..e391670 100644
--- a/tests/gruvbox/gruvbox_spec.lua
+++ b/tests/gruvbox/gruvbox_spec.lua
@@ -157,4 +157,33 @@ describe("tests", function()
vim.opt.background = "light"
assert.are.same(vim.g.terminal_color_0, colors.light0)
end)
+
+ it("multiple calls to setup() are independent", function()
+ -- First call to setup
+ gruvbox.setup({
+ contrast = "soft",
+ overrides = { CursorLine = { bg = "#FF0000" } },
+ })
+ assert.are.same(gruvbox.config.contrast, "soft")
+ assert.are.same(gruvbox.config.overrides.CursorLine.bg, "#FF0000")
+
+ -- Second call to setup
+ gruvbox.setup({ contrast = "hard" })
+ assert.are.same(gruvbox.config.contrast, "hard")
+ -- Check that overrides from the first call are not present
+ assert.is_nil(gruvbox.config.overrides.CursorLine)
+
+ -- Third call to setup with different overrides
+ gruvbox.setup({
+ overrides = { Normal = { fg = "#00FF00" } },
+ })
+ assert.are.same(gruvbox.config.contrast, "") -- Contrast should be reset to default (empty string)
+ assert.is_nil(gruvbox.config.overrides.CursorLine) -- Still no CursorLine override
+ assert.are.same(gruvbox.config.overrides.Normal.fg, "#00FF00") -- New override is present
+
+ -- Call setup with no arguments to reset to defaults
+ gruvbox.setup()
+ assert.are.same(gruvbox.config.contrast, "")
+ assert.is_nil(gruvbox.config.overrides.Normal)
+ end)
end)