aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorbfredl <bjorn.linse@gmail.com>2023-12-06 19:58:02 +0100
committerGitHub <noreply@github.com>2023-12-06 19:58:02 +0100
commit8bb5089974e14f043a0b0c17e4d38dbd0b9a9ab2 (patch)
tree98eaefe66e60d1cf3f1b385f4e454817ae29948b /test
parent08545bd45b80e3056fc8c6c4eb25e2ef1fddd897 (diff)
parent8f10362cdc5835a1cd86c8195ce8e3b10ab85384 (diff)
downloadrneovim-8bb5089974e14f043a0b0c17e4d38dbd0b9a9ab2.tar.gz
rneovim-8bb5089974e14f043a0b0c17e4d38dbd0b9a9ab2.tar.bz2
rneovim-8bb5089974e14f043a0b0c17e4d38dbd0b9a9ab2.zip
Merge pull request #26381 from bfredl/delaycolors
fix(startup): only send one default_colors_set event during startup
Diffstat (limited to 'test')
-rw-r--r--test/functional/ui/embed_spec.lua33
1 files changed, 33 insertions, 0 deletions
diff --git a/test/functional/ui/embed_spec.lua b/test/functional/ui/embed_spec.lua
index 3bc3af9853..5917c4fccc 100644
--- a/test/functional/ui/embed_spec.lua
+++ b/test/functional/ui/embed_spec.lua
@@ -143,6 +143,39 @@ describe('--embed UI', function()
{2:-- INSERT --} |
]]}
end)
+
+ it("only sets background colors once even if overridden", function()
+ local screen, current, seen
+ local function handle_default_colors_set(_, _, rgb_bg, _, _, _)
+ seen[rgb_bg] = true
+ current = rgb_bg
+ end
+ local function startup(...)
+ seen = {}
+ current = nil
+ clear {args_rm={'--headless'}, args={...}}
+
+ -- attach immediately after startup, for early UI
+ screen = Screen.new(40, 8)
+ screen._handle_default_colors_set = handle_default_colors_set
+ screen:attach()
+ end
+
+ startup()
+ screen:expect{condition=function()
+ eq(16777215, current)
+ end}
+ eq({[16777215]=true}, seen)
+
+ -- NB: by accident how functional/helpers.lua currently handles the default color scheme, the
+ -- above is sufficient to test the behavior. But in case that workaround is removed, we need
+ -- a test with an explicit override like below, so do it to remain safe.
+ startup('--cmd', 'hi NORMAL guibg=#FF00FF')
+ screen:expect{condition=function()
+ eq(16711935, current)
+ end}
+ eq({[16711935]=true}, seen) -- we only saw the last one, despite 16777215 was set internally earlier
+ end)
end)
describe('--embed --listen UI', function()