Execute(Invalid responses should be handled):
AssertEqual '', ale#lsp#response#GetErrorMessage({})
AssertEqual '', ale#lsp#response#GetErrorMessage({'error': 0})
AssertEqual '', ale#lsp#response#GetErrorMessage({'error': {}})
AssertEqual '', ale#lsp#response#GetErrorMessage({
\ 'error': {
\ 'code': 0,
\ 'message': 'x',
\ },
\})
AssertEqual '', ale#lsp#response#GetErrorMessage({'error': {'code': -32602}})
AssertEqual '', ale#lsp#response#GetErrorMessage({'error': {'code': -32603}})
Execute(Messages without tracebacks should be handled):
AssertEqual 'xyz', ale#lsp#response#GetErrorMessage({
\ 'code': -32602,
\ 'message': 'xyz',
AssertEqual 'abc', ale#lsp#response#GetErrorMessage({
\ 'code': -32603,
\ 'message': 'abc',
Execute(Invalid traceback data should be tolerated):
\ 'data': {
\ 'traceback': 0,
\ 'traceback': [],
Execute(Messages with tracebacks should be handled):
AssertEqual "xyz\n123\n456", ale#lsp#response#GetErrorMessage({
\ 'traceback': ['123', '456'],
Execute(Messages with string data should be handled):
AssertEqual "xyz\nUncaught Exception", ale#lsp#response#GetErrorMessage({
\ 'data': 'Uncaught Exception',