summaryrefslogtreecommitdiff
path: root/test/handler
diff options
context:
space:
mode:
Diffstat (limited to 'test/handler')
-rw-r--r--test/handler/test_phpstan_handler.vader77
1 files changed, 77 insertions, 0 deletions
diff --git a/test/handler/test_phpstan_handler.vader b/test/handler/test_phpstan_handler.vader
new file mode 100644
index 00000000..207a7758
--- /dev/null
+++ b/test/handler/test_phpstan_handler.vader
@@ -0,0 +1,77 @@
+Before:
+ call ale#test#SetDirectory('/testplugin/test')
+
+ runtime ale_linters/php/phpstan.vim
+
+After:
+ Restore
+
+ call ale#test#RestoreDirectory()
+ call ale#linter#Reset()
+
+Execute(Output without errors should be parsed correctly):
+ call ale#test#SetFilename('phpstan-test-files/foo/test.php')
+
+ AssertEqual
+ \ [],
+ \ ale_linters#php#phpstan#Handle(bufnr(''), [" 1/1 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%"])
+
+Execute(Output with some errors should be parsed correctly):
+ call ale#test#SetFilename('phpstan-test-files/foo/test.php')
+
+ AssertEqual
+ \ [
+ \ {
+ \ 'lnum': 9,
+ \ 'text': 'Call to method format() on an unknown class DateTimeImutable.',
+ \ 'type': 'W'
+ \ },
+ \ {
+ \ 'lnum': 16,
+ \ 'text': 'Sample message.',
+ \ 'type': 'W'
+ \ },
+ \ {
+ \ 'lnum': 192,
+ \ 'text': 'Invalid command testCommand.',
+ \ 'type': 'W'
+ \ }
+ \ ],
+ \ ale_linters#php#phpstan#Handle(bufnr(''), [
+ \ ' 1/1 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%',
+ \ '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': 'W'
+ \ }
+ \ ],
+ \ ale_linters#php#phpstan#Handle(bufnr(''), [
+ \ ' 1/1 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%',
+ \ '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': 'W'
+ \ }
+ \ ],
+ \ ale_linters#php#phpstan#Handle(bufnr(''), [
+ \ ' 1/1 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%',
+ \ '/phpstan-test-files/foo/test.inc:9:Access to an undefined property Test::$var.',
+ \])