diff options
author | w0rp <devw0rp@gmail.com> | 2017-10-28 19:36:16 +0100 |
---|---|---|
committer | w0rp <devw0rp@gmail.com> | 2017-10-28 19:36:16 +0100 |
commit | 5fc2b98b73b74a0d57037683f0c809eac41368f0 (patch) | |
tree | c0f1b45cb936c19130d1a91c283d8f310546bd8a /test/test_ale_toggle.vader | |
parent | ea3a8e3c62d3051fee9342ece2e04bcd04b392b6 (diff) | |
download | ale-5fc2b98b73b74a0d57037683f0c809eac41368f0.zip |
#817 Add commands for toggling ALE for only the current buffer
Diffstat (limited to 'test/test_ale_toggle.vader')
-rw-r--r-- | test/test_ale_toggle.vader | 91 |
1 files changed, 86 insertions, 5 deletions
diff --git a/test/test_ale_toggle.vader b/test/test_ale_toggle.vader index 733ae35d..d8de398a 100644 --- a/test/test_ale_toggle.vader +++ b/test/test_ale_toggle.vader @@ -6,6 +6,9 @@ Before: let g:ale_set_signs = 1 let g:ale_set_lists_synchronously = 1 + let g:ale_run_synchronously = 1 + + unlet! b:ale_enabled let g:ale_buffer_info = {} let g:expected_loclist = [{ @@ -80,6 +83,8 @@ After: unlet! g:expected_loclist unlet! g:expected_groups + unlet! b:ale_enabled + unlet! g:output call ale#linter#Reset() @@ -91,12 +96,19 @@ After: delfunction ToggleTestCallback delfunction ParseAuGroups + call setloclist(0, []) + sign unplace * + call clearmatches() + Given foobar (Some imaginary filetype): foo bar baz Execute(ALEToggle should reset everything and then run again): + " Run this test asynchrously. + let g:ale_run_synchronously = 0 + AssertEqual 'foobar', &filetype call ale#Lint() @@ -134,6 +146,9 @@ Execute(ALEToggle should reset everything and then run again): AssertEqual [{'lnum': 2, 'bufnr': bufnr(''), 'col': 3, 'linter_name': 'testlinter', 'vcol': 0, 'nr': -1, 'type': 'E', 'text': 'foo bar', 'sign_id': 1000001}], g:ale_buffer_info[bufnr('')].loclist Execute(ALEToggle should skip filename keys and preserve them): + " Run this test asynchrously. + let g:ale_run_synchronously = 0 + AssertEqual 'foobar', &filetype let g:ale_buffer_info['/foo/bar/baz.txt'] = { @@ -178,9 +193,6 @@ Execute(ALEToggle should skip filename keys and preserve them): \ get(g:ale_buffer_info, '/foo/bar/baz.txt', {}) Execute(ALEDisable should reset everything and stay disabled): - " We can just lint sychronously for these tests. - let g:ale_run_synchronously = 1 - call ale#Lint() AssertEqual g:expected_loclist, getloclist(0) @@ -196,11 +208,80 @@ Execute(ALEDisable should reset everything and stay disabled): AssertEqual 0, g:ale_enabled Execute(ALEEnable should enable ALE and lint again): - " We can just lint sychronously for these tests. let g:ale_enabled = 0 - let g:ale_run_synchronously = 1 ALEEnable AssertEqual g:expected_loclist, getloclist(0) AssertEqual 1, g:ale_enabled + +Execute(ALEToggleBuffer should reset everything and then run again): + " Run this test asynchrously. + let g:ale_run_synchronously = 0 + + AssertEqual 'foobar', &filetype + + call ale#Lint() + call ale#engine#WaitForJobs(2000) + + " First check that everything is there... + AssertEqual g:expected_loclist, getloclist(0) + AssertEqual [0, [[2, 1000001, 'ALEErrorSign']]], ale#sign#FindCurrentSigns(bufnr('%')) + AssertEqual + \ [{'group': 'ALEError', 'pos1': [2, 3, 1]}], + \ map(getmatches(), '{''group'': v:val.group, ''pos1'': v:val.pos1}') + AssertEqual [{'lnum': 2, 'bufnr': bufnr(''), 'col': 3, 'linter_name': 'testlinter', 'vcol': 0, 'nr': -1, 'type': 'E', 'text': 'foo bar', 'sign_id': 1000001}], g:ale_buffer_info[bufnr('')].loclist + + " Now Toggle ALE off. + ALEToggleBuffer + + " Everything should be cleared. + Assert !has_key(g:ale_buffer_info, bufnr('')), 'The g:ale_buffer_info Dictionary was not removed' + AssertEqual [], getloclist(0), 'The loclist was not cleared' + AssertEqual [0, []], ale#sign#FindCurrentSigns(bufnr('%')), 'The signs were not cleared' + AssertEqual [], getmatches(), 'The highlights were not cleared' + + " Toggle ALE on, everything should be set up and run again. + ALEToggleBuffer + call ale#engine#WaitForJobs(2000) + + AssertEqual g:expected_loclist, getloclist(0) + AssertEqual [0, [[2, 1000001, 'ALEErrorSign']]], ale#sign#FindCurrentSigns(bufnr('%')) + AssertEqual + \ [{'group': 'ALEError', 'pos1': [2, 3, 1]}], + \ map(getmatches(), '{''group'': v:val.group, ''pos1'': v:val.pos1}') + AssertEqual g:expected_groups, ParseAuGroups() + AssertEqual [{'lnum': 2, 'bufnr': bufnr(''), 'col': 3, 'linter_name': 'testlinter', 'vcol': 0, 'nr': -1, 'type': 'E', 'text': 'foo bar', 'sign_id': 1000001}], g:ale_buffer_info[bufnr('')].loclist + +Execute(ALEDisableBuffer should reset everything and stay disabled): + call ale#Lint() + + AssertEqual g:expected_loclist, getloclist(0) + + ALEDisableBuffer + + AssertEqual [], getloclist(0) + AssertEqual 0, b:ale_enabled + +Execute(ALEEnableBuffer should enable ALE and lint again): + let b:ale_enabled = 0 + + ALEEnableBuffer + + AssertEqual g:expected_loclist, getloclist(0) + AssertEqual 1, b:ale_enabled + +Execute(ALEEnableBuffer should complain when ALE is disabled globally): + let g:ale_enabled = 0 + let b:ale_enabled = 0 + + redir => g:output + ALEEnableBuffer + redir END + + AssertEqual [], getloclist(0) + AssertEqual 0, b:ale_enabled + AssertEqual 0, g:ale_enabled + AssertEqual + \ 'ALE cannot be enabled locally when disabled globally', + \ join(split(g:output)) |