mirror of
1
0
Fork 0
ultimate-vim/sources_non_forked/coc.nvim/src/__tests__/core/autocmds.test.ts

69 lines
1.5 KiB
TypeScript

import { Neovim } from '@chemzqm/neovim'
import workspace from '../../workspace'
import helper from '../helper'
let nvim: Neovim
beforeAll(async () => {
await helper.setup()
nvim = helper.nvim
})
afterAll(async () => {
await helper.shutdown()
})
afterEach(async () => {
await helper.reset()
})
describe('setupDynamicAutocmd()', () => {
it('should setup autocmd on vim', async () => {
await nvim.setLine('foo')
let fn = nvim.hasFunction
nvim.hasFunction = () => {
return false
}
let called = false
workspace.registerAutocmd({
event: 'CursorMoved',
request: true,
callback: () => {
called = true
}
})
await helper.wait(50)
await nvim.command('normal! $')
await helper.wait(100)
nvim.hasFunction = fn
expect(called).toBe(true)
nvim.command(`augroup coc_dynamic_autocmd| autocmd!|augroup end`, true)
})
it('should setup user autocmd', async () => {
let called = false
workspace.registerAutocmd({
event: 'User CocJumpPlaceholder',
request: true,
callback: () => {
called = true
}
})
workspace.autocmds.setupDynamicAutocmd(true)
await helper.wait(50)
await nvim.command('doautocmd <nomodeline> User CocJumpPlaceholder')
await helper.wait(100)
expect(called).toBe(true)
})
})
describe('doAutocmd()', () => {
it('should not throw when command id does not exist', async () => {
await workspace.autocmds.doAutocmd(999, [])
})
it('should dispose', async () => {
workspace.autocmds.dispose()
})
})