From 11780e1d3d0da101eb7a313d1c4974ae2d5e323a Mon Sep 17 00:00:00 2001 From: Chris Marchesi Date: Sat, 28 Apr 2018 14:50:20 -0700 Subject: [PATCH] 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. --- test/test_checkingbuffer_autocmd.vader | 57 ++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 test/test_checkingbuffer_autocmd.vader diff --git a/test/test_checkingbuffer_autocmd.vader b/test/test_checkingbuffer_autocmd.vader new file mode 100644 index 0000000..1cbfa34 --- /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