diff options
author | Chris Marchesi <chrism@vancluevertech.com> | 2018-04-28 14:50:20 -0700 |
---|---|---|
committer | Chris Marchesi <chrism@vancluevertech.com> | 2018-04-28 14:50:20 -0700 |
commit | 11780e1d3d0da101eb7a313d1c4974ae2d5e323a (patch) | |
tree | 6fdb2e75fde14d4b6159ae4addec0a0af75166c4 /test | |
parent | 129eb9656135265b67f93463da424446a6f332fa (diff) | |
download | ale-11780e1d3d0da101eb7a313d1c4974ae2d5e323a.zip |
Add some tests for IsCheckingBuffer
Adding a couple of tests to demonstrate how IsCheckingBuffer behaves
during specific autocommand hooks:
* At ALELintPre, no linters have actually executed yet, hence
IsCheckingBuffer should be returning false.
* ALEJobStarted, fires as early as reasonably possible after a job has
successfully started, and hence hooking into IsCheckingBuffer here
should return true.
This distinction is important when using these two events during things
like statusline refreshes, namely for "linter running" indicators.
Diffstat (limited to 'test')
-rw-r--r-- | test/test_checkingbuffer_autocmd.vader | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/test/test_checkingbuffer_autocmd.vader b/test/test_checkingbuffer_autocmd.vader new file mode 100644 index 00000000..1cbfa342 --- /dev/null +++ b/test/test_checkingbuffer_autocmd.vader @@ -0,0 +1,57 @@ +Given testft (An empty file): + +Before: + Save g:ale_run_synchronously + Save g:ale_buffer_info + + let g:ale_run_synchronously = 1 + let g:ale_buffer_info = {} + + let g:checking_buffer = 0 + + unlet! b:ale_linted + + function! TestCallback(buffer, output) + return [] + endfunction + + call ale#linter#Define('testft', { + \ 'name': 'testlinter', + \ 'callback': 'TestCallback', + \ 'executable': has('win32') ? 'cmd' : 'true', + \ 'command': 'true', + \}) + +After: + Restore + + unlet! g:checking_buffer + + delfunction TestCallback + call ale#linter#Reset() + + augroup VaderTest + autocmd! + augroup end + + augroup! VaderTest + +Execute(ALELintPre should not return success on ale#engine#IsCheckingBuffer): + augroup VaderTest + autocmd! + autocmd User ALELintPre let g:checking_buffer = ale#engine#IsCheckingBuffer(bufnr('')) ? 1 : 0 + augroup end + + call ale#Lint() + + AssertEqual g:checking_buffer, 0 + +Execute(ALEJobStarted should return success on ale#engine#IsCheckingBuffer): + augroup VaderTest + autocmd! + autocmd User ALEJobStarted let g:checking_buffer = ale#engine#IsCheckingBuffer(bufnr('')) ? 1 : 0 + augroup end + + call ale#Lint() + + AssertEqual g:checking_buffer, 1 |