summaryrefslogtreecommitdiff
path: root/test/test_ale_linter_get.vader
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_ale_linter_get.vader')
-rw-r--r--test/test_ale_linter_get.vader48
1 files changed, 36 insertions, 12 deletions
diff --git a/test/test_ale_linter_get.vader b/test/test_ale_linter_get.vader
index a6207c01..c8f67cb8 100644
--- a/test/test_ale_linter_get.vader
+++ b/test/test_ale_linter_get.vader
@@ -1,19 +1,43 @@
Before:
- let g:ale_linters = {}
- let g:ale_linter_aliases = {}
+ let g:testlinter1 = {'name': 'testlinter1', 'executable': 'testlinter1', 'command': 'testlinter1', 'callback': 'testCB1', 'output_stream': 'stdout'}
+ let g:testlinter2 = {'name': 'testlinter2', 'executable': 'testlinter2', 'command': 'testlinter2', 'callback': 'testCB2', 'output_stream': 'stdout'}
-After:
+ call ale#linter#Reset()
let g:ale_linters = {}
let g:ale_linter_aliases = {}
-Execute (Defaults should be correct):
- AssertEqual [{'output_stream': 'stdout', 'name': 'eslint', 'executable': 'eslint', 'command': 'eslint -f unix --stdin --stdin-filename %s', 'callback': 'ale_linters#javascript#eslint#Handle'}, {'output_stream': 'stdout', 'name': 'jscs', 'executable': 'jscs', 'command': 'jscs -r unix -n -', 'callback': 'ale#handlers#HandleUnixFormatAsError'}, {'output_stream': 'stdout', 'name': 'jshint', 'executable': 'jshint', 'command_callback': 'ale_linters#javascript#jshint#GetCommand', 'callback': 'ale#handlers#HandleUnixFormatAsError'}], ale#linter#Get('javascript')
+Execute (Define a linter):
+ call ale#linter#Define('testft', g:testlinter1)
+Then (Get the defined linter):
+ AssertEqual [g:testlinter1], ale#linter#Get('testft')
+
+Execute (Define a couple linters, filtering one.):
+ call ale#linter#Define('testft', g:testlinter1)
+ call ale#linter#Define('testft', g:testlinter2)
+ let g:ale_linters = {'testft': ['testlinter1']}
+Then (Only the configured linter should be returned):
+ AssertEqual [g:testlinter1], ale#linter#Get('testft')
+
+Execute (Define a linter for a filetype, and create a filetype alias):
+ call ale#linter#Define('testft1', g:testlinter1)
+ let g:ale_linter_aliases = {'testft2': 'testft1'}
+Then (Linters should be transparently aliased):
+ AssertEqual [g:testlinter1], ale#linter#Get('testft2')
+
+Execute (Define multiple linters, with filters and aliases):
+ call ale#linter#Define('testft1', g:testlinter1)
+ call ale#linter#Define('testft1', g:testlinter2)
+ let g:ale_linters = {'testft1': ['testlinter1'], 'testft2': ['testlinter2']}
+ let g:ale_linter_aliases = {'testft2': 'testft1'}
+Then (Linters should be transparently filtered and aliased):
+ AssertEqual [g:testlinter1], ale#linter#Get('testft1')
+ AssertEqual [g:testlinter2], ale#linter#Get('testft2')
-Execute (You should be able to select only a few linters):
- let g:ale_linters = {'javascript': ['eslint']}
- AssertEqual [{'output_stream': 'stdout', 'name': 'eslint', 'executable': 'eslint', 'command': 'eslint -f unix --stdin --stdin-filename %s', 'callback': 'ale_linters#javascript#eslint#Handle'}], ale#linter#Get('javascript')
+Execute (Define multiple linters for different filetypes):
+ call ale#linter#Define('testft1', g:testlinter1)
+ call ale#linter#Define('testft2', g:testlinter2)
+Then (Linters for dot-seperated filetypes should be properly handled):
+ AssertEqual [g:testlinter1, g:testlinter2], ale#linter#Get('testft1.testft2')
-Execute (You should be able to alias filetypes and select different linters):
- let g:ale_linter_aliases = {'foobar': 'javascript'}
- let g:ale_linters = {'javascript': ['eslint'], 'foobar': ['jshint']}
- AssertEqual [{'output_stream': 'stdout', 'name': 'jshint', 'executable': 'jshint', 'command_callback': 'ale_linters#javascript#jshint#GetCommand', 'callback': 'ale#handlers#HandleUnixFormatAsError'}], ale#linter#Get('foobar')
+Execute (Try to load a linter from disk):
+ AssertEqual [{'name': 'testlinter', 'output_stream': 'stdout', 'executable': 'testlinter', 'command': 'testlinter', 'callback': 'testCB'}], ale#linter#Get('testft')