Before:
runtime autoload/ale.vim
" Replace one of the key ALE functions and make it throw.
function! ale#FileTooLarge() abort
throw 'broken'
endfunction
After:
call ale#ResetErrorDelays()
Execute(ALE should stop queuing for a while after exceptions are thrown):
AssertThrows call ale#Queue(100)
call ale#Queue(100)
Execute(ALE should stop linting for a while after exceptions are thrown):
AssertThrows call ale#Lint()
call ale#Lint()
Execute(ALE should stop echoing messages for a while after exceptions are thrown):
AssertThrows call ale#cursor#EchoCursorWarning()
call ale#cursor#EchoCursorWarning()