summaryrefslogtreecommitdiff
path: root/test/test_lint_file_linters.vader
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_lint_file_linters.vader')
-rw-r--r--test/test_lint_file_linters.vader114
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)