X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/5a4872f466ebd76ddd532bdf2798554421c53df4..fe3919e725e156d751069662d11e38f7b4791de1:/.vim/bundle/vim-lsp/test/lsp/internal/diagnostics/state.vimspec diff --git a/.vim/bundle/vim-lsp/test/lsp/internal/diagnostics/state.vimspec b/.vim/bundle/vim-lsp/test/lsp/internal/diagnostics/state.vimspec new file mode 100644 index 00000000..9c3195e5 --- /dev/null +++ b/.vim/bundle/vim-lsp/test/lsp/internal/diagnostics/state.vimspec @@ -0,0 +1,70 @@ +Describe lsp#internal#diagnostics#state + Before + %bwipeout! + let g:lsp_diagnostics_enabled = 1 + call lsp#internal#diagnostics#state#_disable() + call lsp#internal#diagnostics#state#_enable() + End + + After all + %bwipeout! + let g:lsp_diagnostics_enabled = 0 + call lsp#internal#diagnostics#state#_disable() + End + + It should be able to subscribe to textDocument/publishDiagnostics stream and update state correctly + let l:uri = 'file://some/uri' + + let l:server1_response1 = {'method': 'textDocument/publishDiagnostics', 'params': {'uri': l:uri, 'diagnostics': [ + \ {'severity': 1, 'message': 'm1', 'range': { 'start': { 'line': 1, 'character': 1, 'end': { 'line': 1, 'character': 1 } } }}, + \ {'severity': 1, 'message': 'm2', 'range': { 'start': { 'line': 1, 'character': 2, 'end': { 'line': 1, 'character': 3 } } }}, + \ ]}} + let l:server2_response1 = {'method': 'textDocument/publishDiagnostics', 'params': {'uri': l:uri, 'diagnostics': [ + \ {'severity': 1, 'message': 's2', 'range': { 'start': { 'line': 2, 'character': 3, 'end': { 'line': 4, 'character': 5 } } }}, + \ ]}} + let l:server1_response2 = {'method': 'textDocument/publishDiagnostics', 'params': {'uri': l:uri, 'diagnostics': [ + \ {'severity': 1, 'message': 'm2', 'range': { 'start': { 'line': 1, 'character': 2, 'end': { 'line': 1, 'character': 3 } } }}, + \ ]}} + + Assert Equals(lsp#internal#diagnostics#state#_get_all_diagnostics_grouped_by_server_for_uri(l:uri), {}) + + call lsp#stream(1, { 'server': 'server1', 'response': l:server1_response1 }) + Assert Equals(lsp#internal#diagnostics#state#_get_all_diagnostics_grouped_by_server_for_uri(l:uri), { 'server1': l:server1_response1 }) + let l:want = {} + let l:want[l:uri] = { 'server1': l:server1_response1 } + Assert Equals(lsp#internal#diagnostics#state#_get_all_diagnostics_grouped_by_uri_and_server(), l:want) + + call lsp#stream(1, { 'server': 'server2', 'response': l:server2_response1 }) + Assert Equals(lsp#internal#diagnostics#state#_get_all_diagnostics_grouped_by_server_for_uri(l:uri), { 'server1': l:server1_response1, 'server2': l:server2_response1 }) + let l:want = {} + let l:want[l:uri] = { 'server1': l:server1_response1, 'server2': l:server2_response1 } + Assert Equals(lsp#internal#diagnostics#state#_get_all_diagnostics_grouped_by_uri_and_server(), l:want) + + call lsp#stream(1, { 'server': 'server1', 'response': l:server1_response2 }) + Assert Equals(lsp#internal#diagnostics#state#_get_all_diagnostics_grouped_by_server_for_uri(l:uri), { 'server1': l:server1_response2, 'server2': l:server2_response1 }) + let l:want = {} + let l:want[l:uri] = { 'server1': l:server1_response2, 'server2': l:server2_response1 } + Assert Equals(lsp#internal#diagnostics#state#_get_all_diagnostics_grouped_by_uri_and_server(), l:want) + + call lsp#stream(1, { 'server': '$vimlsp', + \ 'response': { 'method': '$/vimlsp/lsp_server_exit', 'params': { 'server': 'server1' } } }) + let l:want = {} + let l:want[l:uri] = { 'server2': l:server2_response1 } + Assert Equals(lsp#internal#diagnostics#state#_get_all_diagnostics_grouped_by_uri_and_server(), l:want) + End + + + It should correctly return the state of buffer + call lsp#internal#diagnostics#state#_disable() + call lsp#internal#diagnostics#state#_enable() + + let l:bufnr = bufnr('%') + Assert True(lsp#internal#diagnostics#state#_is_enabled_for_buffer(l:bufnr)) + + call lsp#internal#diagnostics#state#_disable_for_buffer(l:bufnr) + Assert False(lsp#internal#diagnostics#state#_is_enabled_for_buffer(l:bufnr)) + + call lsp#internal#diagnostics#state#_enable_for_buffer(l:bufnr) + Assert True(lsp#internal#diagnostics#state#_is_enabled_for_buffer(l:bufnr)) + End +End