diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/test_ale_fix.vader | 109 | ||||
-rw-r--r-- | test/test_ale_toggle.vader | 3 | ||||
-rw-r--r-- | test/test_eslint_executable_detection.vader | 8 |
3 files changed, 115 insertions, 5 deletions
diff --git a/test/test_ale_fix.vader b/test/test_ale_fix.vader new file mode 100644 index 00000000..50e0e065 --- /dev/null +++ b/test/test_ale_fix.vader @@ -0,0 +1,109 @@ +Before: + Save g:ale_fixers, &shell + let g:ale_run_synchronously = 1 + let g:ale_fixers = { + \ 'testft': [], + \} + let &shell = '/bin/bash' + + function AddCarets(buffer, lines) abort + " map() is applied to the original lines here. + " This way, we can ensure that defensive copies are made. + return map(a:lines, '''^'' . v:val') + endfunction + + function AddDollars(buffer, lines) abort + return map(a:lines, '''$'' . v:val') + endfunction + + function DoNothing(buffer, lines) abort + return 0 + endfunction + + function CatLine(buffer, lines) abort + return {'command': 'cat - <(echo d)'} + endfunction + + function ReplaceWithTempFile(buffer, lines) abort + return {'command': 'echo x > %t', 'read_temporary_file': 1} + endfunction + +After: + Restore + unlet! g:ale_run_synchronously + unlet! g:ale_emulate_job_failure + delfunction AddCarets + delfunction AddDollars + delfunction DoNothing + delfunction CatLine + delfunction ReplaceWithTempFile + +Given testft (A file with three lines): + a + b + c + +Execute(ALEFix should complain when there are no functions to call): + AssertThrows ALEFix + AssertEqual 'Vim(echoerr):No fixers have been defined for filetype: testft', g:vader_exception + +Execute(ALEFix should apply simple functions): + let g:ale_fixers.testft = ['AddCarets'] + ALEFix + +Expect(The first function should be used): + ^a + ^b + ^c + +Execute(ALEFix should apply simple functions in a chain): + let g:ale_fixers.testft = ['AddCarets', 'AddDollars'] + ALEFix + +Expect(Both functions should be used): + $^a + $^b + $^c + +Execute(ALEFix should allow 0 to be returned to skip functions): + let g:ale_fixers.testft = ['DoNothing', 'AddDollars'] + ALEFix + +Expect(Only the second function should be applied): + $a + $b + $c + +Execute(ALEFix should allow commands to be run): + let g:ale_fixers.testft = ['CatLine'] + ALEFix + +Expect(An extra line should be added): + a + b + c + d + +Execute(ALEFix should allow temporary files to be read): + let g:ale_fixers.testft = ['ReplaceWithTempFile'] + ALEFix + +Expect(The line we wrote to the temporary file should be used here): + x + +Execute(ALEFix should allow jobs and simple functions to be combined): + let g:ale_fixers.testft = ['ReplaceWithTempFile', 'AddDollars'] + ALEFix + +Expect(The lines from the temporary file should be modified): + $x + +Execute(ALEFix should skip commands when jobs fail to run): + let g:ale_emulate_job_failure = 1 + let g:ale_fixers.testft = ['CatLine', 'AddDollars'] + ALEFix + +Expect(Only the second function should be applied): + $a + $b + $c diff --git a/test/test_ale_toggle.vader b/test/test_ale_toggle.vader index 5d27c864..3546ad71 100644 --- a/test/test_ale_toggle.vader +++ b/test/test_ale_toggle.vader @@ -11,6 +11,7 @@ Before: \ 'valid': 1, \}] let g:expected_groups = [ + \ 'ALEBufferFixGroup', \ 'ALECleanupGroup', \ 'ALECursorGroup', \ 'ALEHighlightBufferGroup', @@ -101,7 +102,7 @@ Execute(ALEToggle should reset everything and then run again): AssertEqual [], getloclist(0) AssertEqual [], ale#sign#FindCurrentSigns(bufnr('%')) AssertEqual [], getmatches() - AssertEqual ['ALECleanupGroup', 'ALEHighlightBufferGroup'], ParseAuGroups() + AssertEqual ['ALEBufferFixGroup', 'ALECleanupGroup', 'ALEHighlightBufferGroup'], ParseAuGroups() " Toggle ALE on, everything should be set up and run again. ALEToggle diff --git a/test/test_eslint_executable_detection.vader b/test/test_eslint_executable_detection.vader index e963ae1c..03bb89e8 100644 --- a/test/test_eslint_executable_detection.vader +++ b/test/test_eslint_executable_detection.vader @@ -20,7 +20,7 @@ Execute(create-react-app directories should be detected correctly): AssertEqual \ g:dir . '/eslint-test-files/react-app/node_modules/eslint/bin/eslint.js', - \ ale_linters#javascript#eslint#GetExecutable(bufnr('')) + \ ale#handlers#eslint#GetExecutable(bufnr('')) :q @@ -31,7 +31,7 @@ Execute(use-global should override create-react-app detection): AssertEqual \ 'eslint_d', - \ ale_linters#javascript#eslint#GetExecutable(bufnr('')) + \ ale#handlers#eslint#GetExecutable(bufnr('')) :q @@ -40,7 +40,7 @@ Execute(other app directories should be detected correctly): AssertEqual \ g:dir . '/eslint-test-files/node_modules/.bin/eslint', - \ ale_linters#javascript#eslint#GetExecutable(bufnr('')) + \ ale#handlers#eslint#GetExecutable(bufnr('')) :q @@ -51,6 +51,6 @@ Execute(use-global should override other app directories): AssertEqual \ 'eslint_d', - \ ale_linters#javascript#eslint#GetExecutable(bufnr('')) + \ ale#handlers#eslint#GetExecutable(bufnr('')) :q |