mirror of
https://github.com/neovim/neovim.git
synced 2026-07-13 21:00:42 +00:00
test: make expect_unchanged() less confusing (#22255)
Problem: The sleep before collecting the initial screen state is confusing and may lead to unexpected success if it comes after a blocking RPC call. Solution: Remove that sleep and add an "intermediate" argument.
This commit is contained in:
@@ -10,7 +10,6 @@ local meths = helpers.meths
|
||||
local exec = helpers.exec
|
||||
local exec_lua = helpers.exec_lua
|
||||
local assert_alive = helpers.assert_alive
|
||||
local poke_eventloop = helpers.poke_eventloop
|
||||
|
||||
|
||||
local content1 = [[
|
||||
@@ -30,8 +29,6 @@ describe("folded lines", function()
|
||||
local function with_ext_multigrid(multigrid)
|
||||
local screen
|
||||
before_each(function()
|
||||
clear()
|
||||
command('hi VertSplit gui=reverse')
|
||||
screen = Screen.new(45, 8)
|
||||
screen:attach({rgb=true, ext_multigrid=multigrid})
|
||||
screen:set_default_attr_ids({
|
||||
@@ -166,12 +163,10 @@ describe("folded lines", function()
|
||||
end
|
||||
-- CursorLine is applied correctly with screenrow motions #22232
|
||||
feed("jgk")
|
||||
poke_eventloop()
|
||||
screen:expect_unchanged()
|
||||
screen:expect_unchanged(true)
|
||||
-- CursorLine is applied correctly when closing a fold when cursor is not at fold start
|
||||
feed("zo4Gzc")
|
||||
poke_eventloop()
|
||||
screen:expect_unchanged()
|
||||
screen:expect_unchanged(true)
|
||||
command("set cursorlineopt=line")
|
||||
if multigrid then
|
||||
screen:expect([[
|
||||
|
||||
@@ -2886,7 +2886,8 @@ it(':substitute with inccommand during :terminal activity', function()
|
||||
feed('gg')
|
||||
feed(':%s/foo/ZZZ')
|
||||
sleep(20) -- Allow some terminal activity.
|
||||
helpers.poke_eventloop()
|
||||
poke_eventloop()
|
||||
screen:sleep(0)
|
||||
screen:expect_unchanged()
|
||||
end)
|
||||
end)
|
||||
|
||||
@@ -470,15 +470,19 @@ screen:redraw_debug() to show all intermediate screen states. ]])
|
||||
end, expected)
|
||||
end
|
||||
|
||||
function Screen:expect_unchanged(waittime_ms, ignore_attrs, request_cb)
|
||||
function Screen:expect_unchanged(intermediate, waittime_ms, ignore_attrs)
|
||||
waittime_ms = waittime_ms and waittime_ms or 100
|
||||
-- Collect the current screen state.
|
||||
self:sleep(0, request_cb)
|
||||
local kwargs = self:get_snapshot(nil, ignore_attrs)
|
||||
|
||||
-- Check that screen state does not change.
|
||||
kwargs.unchanged = true
|
||||
if intermediate then
|
||||
kwargs.intermediate = true
|
||||
else
|
||||
kwargs.unchanged = true
|
||||
end
|
||||
|
||||
kwargs.timeout = waittime_ms
|
||||
-- Check that screen state does not change.
|
||||
self:expect(kwargs)
|
||||
end
|
||||
|
||||
|
||||
@@ -317,6 +317,7 @@ describe('search highlighting', function()
|
||||
]])
|
||||
feed('/foo')
|
||||
helpers.poke_eventloop()
|
||||
screen:sleep(0)
|
||||
screen:expect_unchanged()
|
||||
end)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user