neovim/test/functional/legacy/global_spec.lua
zeertzjq cf3b871fa9
test: use poke_eventloop() instead of sleep(10) where possible (#19794)
Using sleep(10) to wait for typeahead to finish is flaky, especially on
macOS, where legacy/global_spec.lua has failed several times.
2022-08-16 15:21:46 +08:00

52 lines
2.1 KiB
Lua

local helpers = require('test.functional.helpers')(after_each)
local Screen = require('test.functional.ui.screen')
local clear = helpers.clear
local exec = helpers.exec
local feed = helpers.feed
local poke_eventloop = helpers.poke_eventloop
before_each(clear)
describe(':global', function()
-- oldtest: Test_interrupt_global()
it('can be interrupted using Ctrl-C in cmdline mode vim-patch:9.0.0082', function()
local screen = Screen.new(75, 6)
screen:set_default_attr_ids({
[0] = {bold = true, reverse = true}, -- MsgSeparator
[1] = {background = Screen.colors.Red, foreground = Screen.colors.White}, -- ErrorMsg
})
screen:attach()
exec([[
set nohlsearch noincsearch
cnoremap ; <Cmd>sleep 10<CR>
call setline(1, repeat(['foo'], 5))
]])
feed(':g/foo/norm :<C-V>;<CR>')
poke_eventloop() -- Wait for :sleep to start
feed('<C-C>')
screen:expect([[
^foo |
foo |
foo |
foo |
foo |
{1:Interrupted} |
]])
-- Also test in Ex mode
feed('gQg/foo/norm :<C-V>;<CR>')
poke_eventloop() -- Wait for :sleep to start
feed('<C-C>')
screen:expect([[
{0: }|
Entering Ex mode. Type "visual" to go to Normal mode. |
:g/foo/norm :; |
|
{1:Interrupted} |
:^ |
]])
end)
end)