diff options
author | w0rp <w0rp@users.noreply.github.com> | 2019-05-24 01:21:02 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-24 01:21:02 +0100 |
commit | bb08b81bf719d4c55669c583c65fbe4bbd795501 (patch) | |
tree | 4a8360cf2bd1ff5bf816106bc0cccf7436cd3c76 /test | |
parent | 1a9b8a58c7e01f0926e51b39b7b37f932537cc0c (diff) | |
parent | 36c35d840ba90c5069eb514d54a1281d42c3fb26 (diff) | |
download | ale-bb08b81bf719d4c55669c583c65fbe4bbd795501.zip |
Merge pull request #2524 from hsanson/2521-fix-lsp-diagnostics-buffer-match
WIP Fix HandleLSPDiagnostics buffer match logic.
Diffstat (limited to 'test')
-rw-r--r-- | test/lsp/test_did_save_event.vader | 1 | ||||
-rw-r--r-- | test/lsp/test_engine_lsp_response_handling.vader (renamed from test/test_engine_lsp_response_handling.vader) | 168 | ||||
-rw-r--r-- | test/test_history_saving.vader | 3 | ||||
-rw-r--r-- | test/test_ignoring_linters.vader | 12 |
4 files changed, 179 insertions, 5 deletions
diff --git a/test/lsp/test_did_save_event.vader b/test/lsp/test_did_save_event.vader index 1a60bc9f..bdea6d98 100644 --- a/test/lsp/test_did_save_event.vader +++ b/test/lsp/test_did_save_event.vader @@ -9,6 +9,7 @@ Before: call ale#test#SetFilename('dummy.txt') runtime autoload/ale/lsp.vim + runtime autoload/ale/lsp_linter.vim let g:ale_disable_lsp = 0 unlet! b:ale_disable_lsp diff --git a/test/test_engine_lsp_response_handling.vader b/test/lsp/test_engine_lsp_response_handling.vader index 84febe39..9abfa087 100644 --- a/test/test_engine_lsp_response_handling.vader +++ b/test/lsp/test_engine_lsp_response_handling.vader @@ -1,19 +1,42 @@ Before: + Save g:ale_set_lists_synchronously Save g:ale_buffer_info Save g:ale_lsp_error_messages + Save g:ale_set_loclist + Save g:ale_set_signs + Save g:ale_set_quickfix + Save g:ale_set_highlights + Save g:ale_echo_cursor + Save g:ale_disable_lsp + Save g:ale_history_enabled + Save g:ale_history_log_output + let g:ale_disable_lsp = 0 + let g:ale_set_lists_synchronously = 1 let g:ale_buffer_info = {} + let g:ale_set_loclist = 1 + " Disable features we don't need for these tests. + let g:ale_set_signs = 0 + let g:ale_set_quickfix = 0 + let g:ale_set_highlights = 0 + let g:ale_echo_cursor = 0 + let g:ale_history_enabled = 1 + let g:ale_history_log_output = 1 unlet! g:ale_lsp_error_messages unlet! b:ale_linters + unlet! b:ale_disable_lsp + call ale#linter#Reset() call ale#test#SetDirectory('/testplugin/test') + call setloclist(0, []) After: Restore unlet! b:ale_linters + call setloclist(0, []) call ale#test#RestoreDirectory() call ale#linter#Reset() call ale#lsp_linter#ClearLSPData() @@ -92,6 +115,35 @@ Execute(tsserver syntax error responses should be handled correctly): \ ], \ ale#test#GetLoclistWithoutModule() + " Syntax errors on the project root should not populate the LocList. + call ale#lsp_linter#HandleLSPResponse(1, { + \ 'seq': 0, + \ 'type': 'event', + \ 'event': 'syntaxDiag', + \ 'body': { + \ 'file': g:dir, + \ 'diagnostics':[ + \ { + \ 'start': { + \ 'line':2, + \ 'offset':14, + \ }, + \ 'end': { + \ 'line':2, + \ 'offset':15, + \ }, + \ 'text': ''','' expected.', + \ "code":1005 + \ }, + \ ], + \ }, + \}) + + AssertEqual + \ [ + \ ], + \ ale#test#GetLoclistWithoutModule() + Execute(tsserver semantic error responses should be handled correctly): runtime ale_linters/typescript/tsserver.vim call ale#test#SetFilename('filename.ts') @@ -165,6 +217,35 @@ Execute(tsserver semantic error responses should be handled correctly): \ ], \ ale#test#GetLoclistWithoutModule() + " Semantic errors on the project root should not populate the LocList. + call ale#lsp_linter#HandleLSPResponse(1, { + \ 'seq': 0, + \ 'type': 'event', + \ 'event': 'semanticDiag', + \ 'body': { + \ 'file': g:dir, + \ 'diagnostics':[ + \ { + \ 'start': { + \ 'line':2, + \ 'offset':14, + \ }, + \ 'end': { + \ 'line':2, + \ 'offset':15, + \ }, + \ 'text': 'Some semantic error', + \ "code":1005 + \ }, + \ ], + \ }, + \}) + + AssertEqual + \ [ + \ ], + \ ale#test#GetLoclistWithoutModule() + Execute(tsserver errors should mark tsserver no longer active): let b:ale_linters = ['tsserver'] runtime ale_linters/typescript/tsserver.vim @@ -186,6 +267,93 @@ Execute(tsserver errors should mark tsserver no longer active): AssertEqual [], g:ale_buffer_info[bufnr('')].active_linter_list +Execute(LSP diagnostics responses should be handled correctly): + let b:ale_linters = ['eclipselsp'] + runtime ale_linters/java/eclipselsp.vim + call ale#test#SetFilename('filename.java') + call ale#engine#InitBufferInfo(bufnr('')) + call ale#lsp_linter#SetLSPLinterMap({'1': 'eclipselsp'}) + + call ale#lsp_linter#HandleLSPResponse(1, { + \ 'jsonrpc':'2.0', + \ 'method':'textDocument/publishDiagnostics', + \ 'params': { + \ 'uri':'file://' . g:dir . '/filename.java', + \ 'diagnostics': [ + \ { + \ 'range': { + \ 'start': { + \ 'line': 0, + \ 'character':0 + \ }, + \ 'end': { + \ 'line': 0, + \ 'character':0 + \ } + \ }, + \ 'severity': 2, + \ 'code': "", + \ 'source': 'Java', + \ 'message': 'Missing JRE 1-8' + \ } + \ ] + \ } + \}) + + AssertEqual + \ [ + \ { + \ 'lnum': 1, + \ 'bufnr': bufnr(''), + \ 'col': 1, + \ 'pattern': '', + \ 'valid': 1, + \ 'vcol': 0, + \ 'nr': -1, + \ 'type': 'W', + \ 'text': 'Missing JRE 1-8' + \ } + \ ], + \ ale#test#GetLoclistWithoutModule() + +Execute(LSP diagnostics responses on project root should not populate loclist): + let b:ale_linters = ['eclipselsp'] + runtime ale_linters/java/eclipselsp.vim + call ale#test#SetFilename('filename.java') + call ale#engine#InitBufferInfo(bufnr('')) + call ale#lsp_linter#SetLSPLinterMap({'1': 'eclipselsp'}) + + call ale#lsp_linter#HandleLSPResponse(1, { + \ 'jsonrpc':'2.0', + \ 'method':'textDocument/publishDiagnostics', + \ 'params': { + \ 'uri':'file://' . g:dir, + \ 'diagnostics': [ + \ { + \ 'range': { + \ 'start': { + \ 'line': 0, + \ 'character':0 + \ }, + \ 'end': { + \ 'line': 0, + \ 'character':0 + \ } + \ }, + \ 'severity': 2, + \ 'code': "", + \ 'source': 'Java', + \ 'message': 'Missing JRE 1-8' + \ } + \ ] + \ } + \}) + + AssertEqual + \ [ + \ ], + \ ale#test#GetLoclistWithoutModule() + Execute(LSP errors should mark linters no longer active): let b:ale_linters = ['pyls'] runtime ale_linters/python/pyls.vim diff --git a/test/test_history_saving.vader b/test/test_history_saving.vader index 18b64db5..5d81c2a3 100644 --- a/test/test_history_saving.vader +++ b/test/test_history_saving.vader @@ -1,5 +1,6 @@ Before: Save g:ale_max_buffer_history_size + Save g:ale_history_enabled Save g:ale_history_log_output Save g:ale_run_synchronously Save g:ale_enabled @@ -54,8 +55,6 @@ After: " Reset the shell back to what it was before. let &shell = g:current_shell unlet g:current_shell - let g:ale_history_enabled = 1 - let g:ale_history_log_output = 0 unlet g:history call ale#engine#Cleanup(bufnr('')) diff --git a/test/test_ignoring_linters.vader b/test/test_ignoring_linters.vader index f2e9e5c9..d758af5c 100644 --- a/test/test_ignoring_linters.vader +++ b/test/test_ignoring_linters.vader @@ -1,3 +1,11 @@ +Before: + Save g:ale_disable_lsp + +After: + Restore + + unlet! b:ale_disable_lsp + Execute(GetList should ignore some invalid values): AssertEqual [], ale#engine#ignore#GetList('', 'foo') AssertEqual [], ale#engine#ignore#GetList('', 0) @@ -98,7 +106,6 @@ Execute(Exclude should handle Dictionaries): \ ) Execute(Exclude should filter LSP linters when g:ale_disable_lsp is set to 1): - let g:ale_disable_lsp = 1 AssertEqual \ [ \ {'name': 'linter1', 'aliases': [], 'lsp': ''}, @@ -116,7 +123,6 @@ Execute(Exclude should filter LSP linters when g:ale_disable_lsp is set to 1): \ ) Execute(Exclude should filter LSP linters when b:ale_disable_lsp is set to 1): - let b:ale_disable_lsp = 1 AssertEqual \ [ \ {'name': 'linter1', 'aliases': [], 'lsp': ''}, @@ -351,7 +357,7 @@ Execute(ale_disable_lsp should be applied for tsserver): AssertEqual [], g:loclist -Execute(ale_disable_lsp should be applied for LSP linters): +Execute(ale_disable_lsp should be applied for LSP linters): call ale#test#SetFilename('filename.py') call ale#engine#InitBufferInfo(bufnr('')) call ale#lsp_linter#SetLSPLinterMap({'347': 'lsplinter'}) |