summaryrefslogtreecommitdiff
path: root/test/linter/test_vim_vimls.vader
diff options
context:
space:
mode:
Diffstat (limited to 'test/linter/test_vim_vimls.vader')
-rw-r--r--test/linter/test_vim_vimls.vader76
1 files changed, 76 insertions, 0 deletions
diff --git a/test/linter/test_vim_vimls.vader b/test/linter/test_vim_vimls.vader
new file mode 100644
index 00000000..47826a1a
--- /dev/null
+++ b/test/linter/test_vim_vimls.vader
@@ -0,0 +1,76 @@
+" Author: Jeffrey Lau https://github.com/zoonfafer
+" Description: Tests for the Vim vimls linter
+
+Before:
+ call ale#assert#SetUpLinterTest('vim', 'vimls')
+
+After:
+ if isdirectory(g:dir . '/.git')
+ call delete(g:dir . '/.git', 'd')
+ endif
+
+ call ale#assert#TearDownLinterTest()
+
+Execute(should set correct defaults):
+ AssertLinter 'vim-language-server', ale#Escape('vim-language-server') . ' --stdio'
+
+Execute(should set correct LSP values):
+ call ale#test#SetFilename('../test-files/vim/path_with_autoload/test.vim')
+ AssertLSPLanguage 'vim'
+ AssertLSPOptions {}
+ AssertLSPConfig {}
+ AssertLSPProject ale#path#Simplify(g:dir . '/../test-files/vim/path_with_autoload')
+
+Execute(should set correct project for .git/):
+ let b:parent_dir = ale#path#Simplify(g:dir . '/..')
+ let b:git_dir = b:parent_dir . '/.git'
+
+ call ale#test#SetFilename('../test-files/vim/test.vim')
+
+ if !isdirectory(b:git_dir)
+ call mkdir(b:git_dir)
+ endif
+
+ AssertLSPProject ale#path#Simplify(b:parent_dir)
+
+ call delete(b:git_dir, 'd')
+ unlet! b:git_dir
+
+Execute(should set correct project for plugin/):
+ call ale#test#SetFilename('../test-files/vim/path_with_plugin/test.vim')
+
+ AssertLSPProject ale#path#Simplify(g:dir . '/../test-files/vim/path_with_plugin')
+
+Execute(should accept configuration settings):
+ AssertLSPConfig {}
+
+ let b:ale_vim_vimls_config = {'vim': {'foobar': v:true}}
+ AssertLSPConfig {'vim': {'foobar': v:true}}
+
+Execute(should set correct project for .vimrc):
+ call ale#test#SetFilename('../test-files/vim/path_with_vimrc/.vimrc')
+
+ AssertLSPProject ale#path#Simplify(g:dir . '/../test-files/vim/path_with_vimrc')
+
+Execute(should set correct project for init.vim):
+ call ale#test#SetFilename('../test-files/vim/path_with_initvim/init.vim')
+
+ AssertLSPProject ale#path#Simplify(g:dir . '/../test-files/vim/path_with_initvim')
+
+Execute(should use the local executable when available):
+ call ale#test#SetFilename('../test-files/vim/file.vim')
+
+ AssertLinter ale#path#Simplify(g:dir . '/../test-files/vim/node_modules/.bin/vim-language-server'),
+ \ ale#Escape(ale#path#Simplify(g:dir . '/../test-files/vim/node_modules/.bin/vim-language-server')) . ' --stdio'
+
+Execute(should let the global executable to be used):
+ let g:ale_vim_vimls_use_global = 1
+ call ale#test#SetFilename('../test-files/vim/file.vim')
+
+ AssertLinter 'vim-language-server',
+ \ ale#Escape('vim-language-server') . ' --stdio'
+
+Execute(should let the executable to be configured):
+ let g:ale_vim_vimls_executable = 'foobar'
+
+ AssertLinter 'foobar', ale#Escape('foobar') . ' --stdio'