X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/5a4872f466ebd76ddd532bdf2798554421c53df4..fe3919e725e156d751069662d11e38f7b4791de1:/.vim/bundle/vim-lsp/test/lsp/internal/show_message.vimspec diff --git a/.vim/bundle/vim-lsp/test/lsp/internal/show_message.vimspec b/.vim/bundle/vim-lsp/test/lsp/internal/show_message.vimspec new file mode 100644 index 00000000..d2397fe6 --- /dev/null +++ b/.vim/bundle/vim-lsp/test/lsp/internal/show_message.vimspec @@ -0,0 +1,92 @@ +let s:Error = 1 +let s:Warn = 2 +let s:Info = 3 +let s:Log = 4 + +function! s:response(type, message) abort + return { + \ 'server': 'server1', + \ 'response': { + \ 'method': 'window/showMessage', + \ 'params': { + \ 'type': a:type, + \ 'message': a:message + \ } + \ } + \ } +endfunction + +Describe lsp#internal#show_message + Before + %bwipeout! + let g:lsp_show_message_log_level = 'warning' + call lsp#internal#show_message#_disable() + call lsp#internal#show_message#_enable() + End + + After all + %bwipeout! + let g:lsp_show_message_log_level = 'none' + call lsp#internal#show_message#_disable() + End + + It should show all messages when 'log' is set to g:lsp_show_message_log_level + let g:lsp_show_message_log_level = 'log' + + redir => message_area + call lsp#stream(1, s:response(s:Error, 'error message')) + call lsp#stream(1, s:response(s:Warn, 'warn message')) + call lsp#stream(1, s:response(s:Info, 'info message')) + call lsp#stream(1, s:response(s:Log, 'log message')) + call lsp#stream(1, s:response(s:Info, 'info message2')) + call lsp#stream(1, s:response(s:Info, 'info message3')) + redir END + + Assert Match(message_area, 'server1: error: error message') + Assert Match(message_area, 'server1: warning: warn message') + Assert Match(message_area, 'server1: info: info message') + Assert Match(message_area, 'server1: log: log message') + Assert Match(message_area, 'server1: info: info message2') + Assert Match(message_area, 'server1: info: info message3') + End + + It should filter shown messages by log level set to g:lsp_show_message_log_level + let g:lsp_show_message_log_level = 'warning' + + redir => message_area + call lsp#stream(1, s:response(s:Error, 'error message')) + call lsp#stream(1, s:response(s:Warn, 'warn message')) + call lsp#stream(1, s:response(s:Info, 'info message')) + call lsp#stream(1, s:response(s:Log, 'log message')) + call lsp#stream(1, s:response(s:Info, 'info message2')) + call lsp#stream(1, s:response(s:Info, 'info message3')) + redir END + + Assert Match(message_area, 'server1: error: error message') + Assert Match(message_area, 'server1: warning: warn message') + Assert NotMatch(message_area, 'server1: info: info message') + Assert NotMatch(message_area, 'server1: log: log message') + Assert NotMatch(message_area, 'server1: info: info message2') + Assert NotMatch(message_area, 'server1: info: info message3') + End + + It should show no message when 'none' is set to g:lsp_show_message_log_level + let g:lsp_show_message_log_level = 'none' + + redir => message_area + call lsp#stream(1, s:response(s:Error, 'error message')) + call lsp#stream(1, s:response(s:Warn, 'warn message')) + call lsp#stream(1, s:response(s:Info, 'info message')) + call lsp#stream(1, s:response(s:Log, 'log message')) + call lsp#stream(1, s:response(s:Info, 'info message2')) + call lsp#stream(1, s:response(s:Info, 'info message3')) + redir END + + Assert NotMatch(message_area, 'server1: error: error message') + Assert NotMatch(message_area, 'server1: warning: warn message') + Assert NotMatch(message_area, 'server1: info: info message') + Assert NotMatch(message_area, 'server1: log: log message') + Assert NotMatch(message_area, 'server1: info: info message2') + Assert NotMatch(message_area, 'server1: info: info message3') + End +End