local helpers = require('test.functional.helpers')(after_each)
local clear = helpers.clear
local command = helpers.command
local eq = helpers.eq
local neq = helpers.neq
local exec_lua = helpers.exec_lua
local matches = helpers.matches
local api = helpers.api
local source = helpers.source
local pcall_err = helpers.pcall_err
before_each(clear)
describe('autocmd api', function()
describe('nvim_create_autocmd', function()
it('validation', function()
eq(
"Cannot use both 'callback' and 'command'",
pcall_err(api.nvim_create_autocmd, 'BufReadPost', {
pattern = '*.py,*.pyi',
command = "echo 'Should Have Errored",
callback = 'NotAllowed',
})
)
eq(
"Cannot use both 'pattern' and 'buffer' for the same autocmd",
pcall_err(api.nvim_create_autocmd, 'FileType', {
command = 'let g:called = g:called + 1',
buffer = 0,
pattern = '*.py',
})
)
eq(
"Required: 'event'",
pcall_err(api.nvim_create_autocmd, {}, {
command = 'ls',
})
)
eq("Required: 'command' or 'callback'", pcall_err(api.nvim_create_autocmd, 'FileType', {}))
eq(
"Invalid 'desc': expected String, got Integer",
pcall_err(api.nvim_create_autocmd, 'FileType', {
command = 'ls',
desc = 42,
})
)
eq(
"Invalid 'callback': expected Lua function or Vim function name, got Integer",
pcall_err(api.nvim_create_autocmd, 'FileType', {
callback = 0,
})
)
eq(
"Invalid 'event' item: expected String, got Array",
pcall_err(api.nvim_create_autocmd, { 'FileType', {} }, {})
)
eq(
"Invalid 'group': 0",
pcall_err(api.nvim_create_autocmd, 'FileType', {
group = 0,
command = 'ls',
})
)
eq("Invalid 'event': 'foo'", pcall_err(api.nvim_create_autocmd, 'foo', { command = '' }))
eq(
"Invalid 'event': 'VimEnter '",
pcall_err(api.nvim_create_autocmd, 'VimEnter ', { command = '' })
)
eq(
"Invalid 'event': 'VimEnter foo'",
pcall_err(api.nvim_create_autocmd, 'VimEnter foo', { command
|