Skip to content

Commit

Permalink
test: simplify TUI bg-detection test
Browse files Browse the repository at this point in the history
Previous approach skipped the test if the expected value matched the
default value ("dark"). New approach always checks, but uses retry() to
ignore potentially wrong 'background' before the terminal response is
handled.
  • Loading branch information
justinmk committed Mar 15, 2019
1 parent 1baf4ed commit b90256e
Showing 1 changed file with 16 additions and 25 deletions.
41 changes: 16 additions & 25 deletions test/functional/terminal/tui_spec.lua
Original file line number Diff line number Diff line change
Expand Up @@ -859,32 +859,23 @@ describe('TUI background color', function()

local function assert_bg(color, bg)
it('handles '..color..' as '..bg, function()
feed_data('\027:autocmd OptionSet background :echo &background\n')

-- Wait for the child Nvim to register the OptionSet handler.
feed_data('\027:autocmd OptionSet\n')
screen:expect({any='--- Autocommands ---'})

feed_data('\012') -- CTRL-L: clear the screen
local expected_grid = [[
{1: } |
{4:~ }|
{4:~ }|
{4:~ }|
{5:[No Name] 0,0-1 All}|
%-5s |
{3:-- TERMINAL --} |
]]
screen:expect(string.format(expected_grid, ''))

feed_data('\027]11;rgb:'..color..'\007')
-- Because bg=dark is the default, we do NOT expect OptionSet event.
if bg == 'dark' then
screen:expect{unchanged=true,
grid=string.format(expected_grid, '')}
else
screen:expect(string.format(expected_grid, bg))
end
-- Retry until the terminal response is handled.
retry(100, nil, function()
feed_data(':echo &background\n')
screen:expect({
timeout=40,
grid=string.format([[
{1: } |
{4:~ }|
{4:~ }|
{4:~ }|
{5:[No Name] 0,0-1 All}|
%-5s |
{3:-- TERMINAL --} |
]], bg)
})
end)
end)
end

Expand Down

0 comments on commit b90256e

Please sign in to comment.