aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-04-11 11:32:15 +0800
committerGitHub <noreply@github.com>2022-04-11 11:32:15 +0800
commitf89ca7194f484108529cbb93ef61ce45a9a277b5 (patch)
tree0be4ec88907b0b647a177d7ed83b27ff27294176 /test
parentcdfb045ea027e018f14fb2735c3fd6aaa718ae58 (diff)
downloadrneovim-f89ca7194f484108529cbb93ef61ce45a9a277b5.tar.gz
rneovim-f89ca7194f484108529cbb93ef61ce45a9a277b5.tar.bz2
rneovim-f89ca7194f484108529cbb93ef61ce45a9a277b5.zip
fix(events): make v:event readonly in more events (#18070)
This makes v:event readonly in these four events: - ChanInfo - ChanOpen - RecordingLeave - TermClose
Diffstat (limited to 'test')
-rw-r--r--test/functional/autocmd/autocmd_spec.lua32
1 files changed, 32 insertions, 0 deletions
diff --git a/test/functional/autocmd/autocmd_spec.lua b/test/functional/autocmd/autocmd_spec.lua
index c010fb8034..6111654b5e 100644
--- a/test/functional/autocmd/autocmd_spec.lua
+++ b/test/functional/autocmd/autocmd_spec.lua
@@ -17,6 +17,7 @@ local command = helpers.command
local exc_exec = helpers.exc_exec
local exec_lua = helpers.exec_lua
local curbufmeths = helpers.curbufmeths
+local retry = helpers.retry
local source = helpers.source
describe('autocmd', function()
@@ -439,6 +440,37 @@ describe('autocmd', function()
]]}
end)
+ describe('v:event is readonly #18063', function()
+ it('during ChanOpen event', function()
+ command('autocmd ChanOpen * let v:event.info.id = 0')
+ funcs.jobstart({'cat'})
+ retry(nil, nil, function()
+ eq('E46: Cannot change read-only variable "v:event.info"', meths.get_vvar('errmsg'))
+ end)
+ end)
+
+ it('during ChanOpen event', function()
+ command('autocmd ChanInfo * let v:event.info.id = 0')
+ meths.set_client_info('foo', {}, 'remote', {}, {})
+ retry(nil, nil, function()
+ eq('E46: Cannot change read-only variable "v:event.info"', meths.get_vvar('errmsg'))
+ end)
+ end)
+
+ it('during RecordingLeave event', function()
+ command([[autocmd RecordingLeave * let v:event.regname = '']])
+ eq('Vim(let):E46: Cannot change read-only variable "v:event.regname"',
+ pcall_err(command, 'normal! qqq'))
+ end)
+
+ it('during TermClose event', function()
+ command('autocmd TermClose * let v:event.status = 0')
+ command('terminal')
+ eq('Vim(let):E46: Cannot change read-only variable "v:event.status"',
+ pcall_err(command, 'bdelete!'))
+ end)
+ end)
+
describe('old_tests', function()
it('vimscript: WinNew ++once', function()
source [[