diff options
Diffstat (limited to 'test/test_ale_linter_get.vader')
-rw-r--r-- | test/test_ale_linter_get.vader | 48 |
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') |