From 6aa29d0f01e715fe51de4f66dee377e4c1726229 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Mon, 21 Aug 2023 13:45:26 +0800 Subject: [PATCH] test: add some tests for SafeState autocommand --- test/functional/autocmd/safestate_spec.lua | 57 ++++++++++++++++++++++ test/functional/vimscript/state_spec.lua | 1 - 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 test/functional/autocmd/safestate_spec.lua diff --git a/test/functional/autocmd/safestate_spec.lua b/test/functional/autocmd/safestate_spec.lua new file mode 100644 index 0000000000..73693749e4 --- /dev/null +++ b/test/functional/autocmd/safestate_spec.lua @@ -0,0 +1,57 @@ +local helpers = require('test.functional.helpers')(after_each) +local clear = helpers.clear +local eq = helpers.eq +local exec = helpers.exec +local feed = helpers.feed +local meths = helpers.meths + +before_each(clear) + +describe('SafeState autocommand', function() + local function create_autocmd() + exec([[ + let g:safe = 0 + autocmd SafeState * ++once let g:safe += 1 + ]]) + end + + it('with pending operator', function() + feed('d') + create_autocmd() + eq(0, meths.get_var('safe')) + feed('d') + eq(1, meths.get_var('safe')) + end) + + it('with specified register', function() + feed('"r') + create_autocmd() + eq(0, meths.get_var('safe')) + feed('x') + eq(1, meths.get_var('safe')) + end) + + it('with i_CTRL-O', function() + feed('i') + create_autocmd() + eq(0, meths.get_var('safe')) + feed('x') + eq(1, meths.get_var('safe')) + end) + + it('with Insert mode completion', function() + feed('i') + create_autocmd() + eq(0, meths.get_var('safe')) + feed('') + eq(1, meths.get_var('safe')) + end) + + it('with Cmdline completion', function() + feed(':') + create_autocmd() + eq(0, meths.get_var('safe')) + feed('') + eq(1, meths.get_var('safe')) + end) +end) diff --git a/test/functional/vimscript/state_spec.lua b/test/functional/vimscript/state_spec.lua index fd38a8ad5b..70f68a7494 100644 --- a/test/functional/vimscript/state_spec.lua +++ b/test/functional/vimscript/state_spec.lua @@ -17,7 +17,6 @@ describe('state() function', function() function _G.Get_state_mode() _G.res = { vim.fn.state(), vim.api.nvim_get_mode().mode:sub(1, 1) } end - function _G.Run_timer() local timer = vim.uv.new_timer() timer:start(0, 0, function()