diff options
Diffstat (limited to 'test/test_lint_file_linters.vader')
-rw-r--r-- | test/test_lint_file_linters.vader | 114 |
1 files changed, 106 insertions, 8 deletions
diff --git a/test/test_lint_file_linters.vader b/test/test_lint_file_linters.vader index b0dc1eb3..cb859790 100644 --- a/test/test_lint_file_linters.vader +++ b/test/test_lint_file_linters.vader @@ -1,6 +1,11 @@ Before: Save g:ale_run_synchronously + Save g:ale_buffer_info + Save g:ale_linters + + let g:ale_buffer_info = {} let g:ale_run_synchronously = 1 + call ale#ResetLintFileMarkers() let g:buffer_result = [ \ { @@ -74,8 +79,14 @@ Before: call ale#test#SetFilename(g:filename) After: + if !g:ale_run_synchronously + call ale#engine#WaitForJobs(2000) + endif + Restore + unlet! b:ale_save_event_fired + unlet! b:ale_enabled unlet g:buffer_result let g:ale_buffer_info = {} call ale#linter#Reset() @@ -95,8 +106,6 @@ Given foobar (Some imaginary filetype): baz Execute(Running linters without 'lint_file' should run only buffer linters): - call ale#ResetLintFileMarkers() - let g:ale_buffer_info = {} call ale#Queue(0) AssertEqual [ @@ -115,9 +124,6 @@ Execute(Running linters without 'lint_file' should run only buffer linters): \], GetSimplerLoclist() Execute(Running linters with 'lint_file' should run all linters): - call ale#ResetLintFileMarkers() - let g:ale_buffer_info = {} - Assert filereadable(expand('%:p')), 'The file was not readable' call ale#Queue(0, 'lint_file') @@ -150,9 +156,6 @@ Execute(Running linters with 'lint_file' should run all linters): \], GetSimplerLoclist() Execute(Linter errors from files should be kept): - call ale#ResetLintFileMarkers() - let g:ale_buffer_info = {} - Assert filereadable(expand('%:p')), 'The file was not readable' call ale#Queue(0, 'lint_file') @@ -189,3 +192,98 @@ Execute(Linter errors from files should be kept): \ 'type': 'E', \ }, \], GetSimplerLoclist() + +Execute(Linter errors from files should be kept when no other linters are run): + let g:ale_linters = {'foobar': ['lint_file_linter']} + Assert filereadable(expand('%:p')), 'The file was not readable' + + call ale#Queue(0, 'lint_file') + + AssertEqual [ + \ { + \ 'lnum': 1, + \ 'col': 3, + \ 'text': 'file warning', + \ 'type': 'W', + \ }, + \ { + \ 'lnum': 2, + \ 'col': 3, + \ 'text': 'file error', + \ 'type': 'E', + \ }, + \], GetSimplerLoclist() + + call ale#Queue(0) + + AssertEqual [ + \ { + \ 'lnum': 1, + \ 'col': 3, + \ 'text': 'file warning', + \ 'type': 'W', + \ }, + \ { + \ 'lnum': 2, + \ 'col': 3, + \ 'text': 'file error', + \ 'type': 'E', + \ }, + \], GetSimplerLoclist() + +Execute(The Save event should respect the buffer number): + let g:ale_linters = {'foobar': ['lint_file_linter']} + Assert filereadable(expand('%:p')), 'The file was not readable' + + call ale#events#SaveEvent(bufnr('') + 1) + + " We shouldn't get any prblems yet. + AssertEqual [], GetSimplerLoclist() + + call ale#events#SaveEvent(bufnr('')) + + " We should get them now we used the right buffer number. + AssertEqual [ + \ { + \ 'lnum': 1, + \ 'col': 3, + \ 'text': 'file warning', + \ 'type': 'W', + \ }, + \ { + \ 'lnum': 2, + \ 'col': 3, + \ 'text': 'file error', + \ 'type': 'E', + \ }, + \], GetSimplerLoclist() + +Execute(The Save event should set b:ale_save_event_fired to 1): + let b:ale_enabled = 0 + call ale#events#SaveEvent(bufnr('')) + + " This flag needs to be set so windows can be opened, etc. + AssertEqual 1, b:ale_save_event_fired + +Execute(b:ale_save_event_fired should be set to 0 when results are set): + let b:ale_save_event_fired = 1 + + call ale#engine#SetResults(bufnr(''), []) + + AssertEqual 0, b:ale_save_event_fired + +Execute(lint_file linters should stay running after checking without them): + let g:ale_run_synchronously = 0 + + " Run all linters, then just the buffer linters. + call ale#Queue(0, 'lint_file') + call ale#Queue(0) + + " The lint_file linter should still be running. + AssertEqual + \ ['lint_file_linter', 'buffer_linter'], + \ g:ale_buffer_info[bufnr('')].active_linter_list + " We should have 1 job for each linter. + AssertEqual 2, len(g:ale_buffer_info[bufnr('')].job_list) + + call ale#engine#WaitForJobs(2000) |