From 2a5a7baffc3b5530a2f167d241b87a3f09ed12e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goire=20Paris?= Date: Fri, 9 Jul 2021 16:59:36 +0200 Subject: Add support for multiline messages (#3686) This is achieved by switching to JSON, which makes it much easier to avoid confusion between an error message and the next one. It also spares us from having to deal with regular expressions, and eliminates some edge cases that no longer need to be tested. --- test/handler/test_phpstan_handler.vader | 49 +++++++++------------------------ 1 file changed, 13 insertions(+), 36 deletions(-) (limited to 'test/handler') diff --git a/test/handler/test_phpstan_handler.vader b/test/handler/test_phpstan_handler.vader index 67fdb759..58cb574f 100644 --- a/test/handler/test_phpstan_handler.vader +++ b/test/handler/test_phpstan_handler.vader @@ -14,7 +14,9 @@ Execute(Output without errors should be parsed correctly): AssertEqual \ [], - \ ale_linters#php#phpstan#Handle(bufnr(''), []) + \ ale_linters#php#phpstan#Handle(bufnr(''), [ + \ '{"totals":{"errors":0,"file_errors":0},"files":[],"errors":[]}', + \ ]) Execute(Output with some errors should be parsed correctly): call ale#test#SetFilename('phpstan-test-files/foo/test.php') @@ -37,38 +39,13 @@ Execute(Output with some errors should be parsed correctly): \ 'type': 'E' \ } \ ], - \ ale_linters#php#phpstan#Handle(bufnr(''), [ - \ 'phpstan-test-files/foo/test.php:9:Call to method format() on an unknown class DateTimeImutable.', - \ 'phpstan-test-files/foo/test.php:16:Sample message.', - \ 'phpstan-test-files/foo/test.php:192:Invalid command testCommand.', - \]) - -Execute(Output should be parsed correctly with Windows paths): - call ale#test#SetFilename('phpstan-test-files/foo/test.php') - - AssertEqual - \ [ - \ { - \ 'lnum': 9, - \ 'text': 'Access to an undefined property Test::$var.', - \ 'type': 'E' - \ } - \ ], - \ ale_linters#php#phpstan#Handle(bufnr(''), [ - \ 'D:\phpstan-test-files\foo\test.php:9:Access to an undefined property Test::$var.', - \]) - -Execute(Output for .inc files should be parsed correctly): - call ale#test#SetFilename('phpstan-test-files/test.inc') - - AssertEqual - \ [ - \ { - \ 'lnum': 9, - \ 'text': 'Access to an undefined property Test::$var.', - \ 'type': 'E' - \ } - \ ], - \ ale_linters#php#phpstan#Handle(bufnr(''), [ - \ '/phpstan-test-files/foo/test.inc:9:Access to an undefined property Test::$var.', - \]) + \ ale_linters#php#phpstan#Handle(bufnr(''), [json_encode( + \ { + \ "totals":{"errors": 0, "file_errors": 11}, + \ "files":{expand('%:p'): {"errors": 3, "messages": [ + \ {"message": "Call to method format() on an unknown class DateTimeImutable.", "line":9}, + \ {"message": "Sample message.", "line":16}, + \ {"message": "Invalid command testCommand.", "line": 192} + \ ]}} + \ }, + \)]) -- cgit v1.2.3