diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2017-06-26 14:49:15 +0200 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2018-10-15 20:13:11 +0200 |
commit | c8810a51a3a7ef1185b45c07d93f7e6769c5ab55 (patch) | |
tree | 55e62aa6c09a729c9c34bd5d4d4d40321f982376 /test/functional/ui/wildmode_spec.lua | |
parent | 8fd092f3ff15bf70f84ec0d716c5aaa2c7379fa1 (diff) | |
download | rneovim-c8810a51a3a7ef1185b45c07d93f7e6769c5ab55.tar.gz rneovim-c8810a51a3a7ef1185b45c07d93f7e6769c5ab55.tar.bz2 rneovim-c8810a51a3a7ef1185b45c07d93f7e6769c5ab55.zip |
tests: improve robustness of immediate successes in screen tests
Diffstat (limited to 'test/functional/ui/wildmode_spec.lua')
-rw-r--r-- | test/functional/ui/wildmode_spec.lua | 36 |
1 files changed, 17 insertions, 19 deletions
diff --git a/test/functional/ui/wildmode_spec.lua b/test/functional/ui/wildmode_spec.lua index 72dbef9538..8931d9245b 100644 --- a/test/functional/ui/wildmode_spec.lua +++ b/test/functional/ui/wildmode_spec.lua @@ -1,3 +1,5 @@ +local global_helpers = require('test.helpers') +local shallowcopy = global_helpers.shallowcopy local helpers = require('test.functional.helpers')(after_each) local Screen = require('test.functional.ui.screen') local clear, feed, command = helpers.clear, helpers.feed, helpers.command @@ -18,6 +20,14 @@ describe("'wildmenu'", function() screen:detach() end) + -- expect the screen stayed unchanged some time after first seen success + local function expect_stay_unchanged(args) + screen:expect(args) + args = shallowcopy(args) + args.unchanged = true + screen:expect(args) + end + it(':sign <tab> shows wildmenu completions', function() command('set wildmode=full') command('set wildmenu') @@ -76,10 +86,6 @@ describe("'wildmenu'", function() end) it('is preserved during :terminal activity', function() - -- Because this test verifies a _lack_ of activity after screen:sleep(), we - -- must wait the full timeout. So make it reasonable. - screen.timeout = 1000 - command('set wildmenu wildmode=full') command('set scrollback=4') if iswin() then @@ -90,26 +96,24 @@ describe("'wildmenu'", function() feed([[<C-\><C-N>gg]]) feed([[:sign <Tab>]]) -- Invoke wildmenu. - screen:sleep(50) -- Allow some terminal output. - screen:expect([[ + expect_stay_unchanged{grid=[[ foo | foo | foo | define jump list > | :sign define^ | - ]]) + ]]} -- cmdline CTRL-D display should also be preserved. feed([[<C-\><C-N>]]) feed([[:sign <C-D>]]) -- Invoke cmdline CTRL-D. - screen:sleep(50) -- Allow some terminal output. - screen:expect([[ + expect_stay_unchanged{grid=[[ :sign | define place | jump undefine | list unplace | :sign ^ | - ]]) + ]]} -- Exiting cmdline should show the buffer. feed([[<C-\><C-N>]]) @@ -123,22 +127,17 @@ describe("'wildmenu'", function() end) it('ignores :redrawstatus called from a timer #7108', function() - -- Because this test verifies a _lack_ of activity after screen:sleep(), we - -- must wait the full timeout. So make it reasonable. - screen.timeout = 1000 - command('set wildmenu wildmode=full') command([[call timer_start(10, {->execute('redrawstatus')}, {'repeat':-1})]]) feed([[<C-\><C-N>]]) feed([[:sign <Tab>]]) -- Invoke wildmenu. - screen:sleep(30) -- Allow some timer activity. - screen:expect([[ + expect_stay_unchanged{grid=[[ | ~ | ~ | define jump list > | :sign define^ | - ]]) + ]]} end) it('with laststatus=0, :vsplit, :term #2255', function() @@ -164,10 +163,9 @@ describe("'wildmenu'", function() feed([[<C-\><C-N>]]) feed([[:<Tab>]]) -- Invoke wildmenu. - screen:sleep(10) -- Flush -- Check only the last 2 lines, because the shell output is -- system-dependent. - screen:expect{any='! # & < = > @ > \n:!^'} + expect_stay_unchanged{any='! # & < = > @ > \n:!^'} end) end) |