summaryrefslogtreecommitdiff
path: root/test/linter/test_phpstan.vader
diff options
context:
space:
mode:
Diffstat (limited to 'test/linter/test_phpstan.vader')
-rw-r--r--test/linter/test_phpstan.vader85
1 files changed, 85 insertions, 0 deletions
diff --git a/test/linter/test_phpstan.vader b/test/linter/test_phpstan.vader
new file mode 100644
index 00000000..813fe448
--- /dev/null
+++ b/test/linter/test_phpstan.vader
@@ -0,0 +1,85 @@
+Before:
+ call ale#assert#SetUpLinterTest('php', 'phpstan')
+
+ let g:old_dir = g:dir
+
+ " Create a temporary directory and work within it, otherwise these tests
+ " cannot be run in parallel.
+ let g:dir = tempname()
+ call mkdir(g:dir, '', 0750)
+ silent! execute 'cd ' . fnameescape(g:dir)
+ silent! noautocmd execute 'file ' . fnameescape(ale#path#Simplify(g:dir . '/test.php'))
+
+ call delete('./phpstan.neon')
+
+ GivenCommandOutput ['0.10.2']
+
+After:
+ silent! execute 'cd ' . fnameescape(g:old_dir)
+ call delete(g:dir, 'rf')
+ let g:dir = g:old_dir
+ unlet! g:old_dir
+ call ale#assert#TearDownLinterTest()
+
+Execute(Custom executables should be used for the executable and command):
+ let g:ale_php_phpstan_executable = 'phpstan_test'
+
+ AssertLinter 'phpstan_test',
+ \ ale#Escape('phpstan_test') . ' analyze --no-progress --errorFormat raw -l ' . ale#Escape('4') . ' %s'
+
+Execute(project with level set to 3):
+ call ale#test#SetFilename('phpstan-test-files/foo/test.php')
+ let g:ale_php_phpstan_level = 3
+
+ AssertLinter 'phpstan',
+ \ ale#Escape('phpstan') . ' analyze --no-progress --errorFormat raw -l ' . ale#Escape('3') . ' %s'
+
+Execute(Custom phpstan configuration file):
+ let g:ale_php_phpstan_configuration = 'phpstan_config'
+
+ AssertLinter 'phpstan',
+ \ ale#Escape('phpstan') . ' analyze --no-progress --errorFormat raw -c ' . ale#Escape('phpstan_config') . ' -l ' . ale#Escape('4') . ' %s'
+
+Execute(Choose the right format for error format param):
+ GivenCommandOutput ['0.10.3']
+
+ AssertLinter 'phpstan', [
+ \ ale#Escape('phpstan') . ' --version',
+ \ ale#Escape('phpstan') . ' analyze --no-progress --error-format raw -l ' . ale#Escape('4') . ' %s'
+ \ ]
+
+Execute(Configuration file exists in current directory):
+ call writefile(['parameters:', ' level: 7'], './phpstan.neon')
+ let g:ale_php_phpstan_level = ''
+ let g:ale_php_phpstan_configuration = ''
+
+ AssertLinter 'phpstan', [
+ \ ale#Escape('phpstan') . ' --version',
+ \ ale#Escape('phpstan') . ' analyze --no-progress --errorFormat raw %s'
+ \ ]
+
+Execute(Configuration file exists in current directory, but force phpstan level):
+ call writefile(['parameters:', ' level: 7'], './phpstan.neon')
+ let g:ale_php_phpstan_configuration = ''
+ let g:ale_php_phpstan_level = '7'
+
+ AssertLinter 'phpstan', [
+ \ ale#Escape('phpstan') . ' --version',
+ \ ale#Escape('phpstan') . ' analyze --no-progress --errorFormat raw -l ' . ale#Escape('7') . ' %s'
+ \ ]
+
+Execute(Configuration file exists in current directory, but force phpstan configuration):
+ call writefile(['parameters:', ' level: 7'], './phpstan.neon')
+ let g:ale_php_phpstan_level = ''
+ let g:ale_php_phpstan_configuration = 'phpstan.custom.neon'
+
+ AssertLinter 'phpstan', [
+ \ ale#Escape('phpstan') . ' --version',
+ \ ale#Escape('phpstan') . ' analyze --no-progress --errorFormat raw -c ' . ale#Escape('phpstan.custom.neon') . ' %s'
+ \ ]
+
+Execute(Autoload parameter is added to the command):
+ let g:ale_php_phpstan_autoload = 'autoload.php'
+
+ AssertLinter 'phpstan',
+ \ ale#Escape('phpstan') . ' analyze --no-progress --errorFormat raw -a ' . ale#Escape('autoload.php') . ' -l ' . ale#Escape('4') . ' %s'