From 81d993086eae20cd8d2871b62e8889e54cfa9187 Mon Sep 17 00:00:00 2001 From: w0rp Date: Tue, 17 Oct 2017 00:37:29 +0100 Subject: #904 - Allow linting to run on save a second after :q fails --- test/test_no_linting_on_write_quit.vader | 26 ++++++++++++++++++++++++++ test/test_quitting_variable.vader | 21 +++++++++++++++++++-- 2 files changed, 45 insertions(+), 2 deletions(-) (limited to 'test') diff --git a/test/test_no_linting_on_write_quit.vader b/test/test_no_linting_on_write_quit.vader index dc78ef75..271adf65 100644 --- a/test/test_no_linting_on_write_quit.vader +++ b/test/test_no_linting_on_write_quit.vader @@ -55,6 +55,19 @@ Execute(No linting should be done on :wq or :x): AssertEqual [], getloclist(0) +Execute(No linting should be for :w after :q fails): + let g:ale_lint_on_save = 1 + let g:ale_fix_on_save = 0 + + call ale#events#QuitEvent(bufnr('')) + + " Simulate 2 seconds passing. + let b:ale_quitting -= 1000 + + call ale#events#SaveEvent(bufnr('')) + + AssertEqual 1, len(getloclist(0)) + Execute(No linting should be done on :wq or :x after fixing files): let g:ale_lint_on_save = 0 let g:ale_fix_on_save = 1 @@ -69,3 +82,16 @@ Execute(No linting should be done on :wq or :x after fixing files): call ale#events#SaveEvent(bufnr('')) AssertEqual [], getloclist(0) + +Execute(Linting should be done after :q fails and fixing files): + let g:ale_lint_on_save = 0 + let g:ale_fix_on_save = 1 + + call ale#events#QuitEvent(bufnr('')) + + " Simulate 2 seconds passing. + let b:ale_quitting -= 1000 + + call ale#events#SaveEvent(bufnr('')) + + AssertEqual 1, len(getloclist(0)) diff --git a/test/test_quitting_variable.vader b/test/test_quitting_variable.vader index 80b0a8dd..bef344a8 100644 --- a/test/test_quitting_variable.vader +++ b/test/test_quitting_variable.vader @@ -8,11 +8,15 @@ After: Restore unlet! b:ale_quitting + unlet! b:time_before + +Execute(QuitEvent should set b:ale_quitting some time from the clock): + let b:time_before = ale#util#ClockMilliseconds() -Execute(QuitEvent should set b:ale_quitting to 1): call ale#events#QuitEvent(bufnr('')) - AssertEqual 1, b:ale_quitting + Assert b:ale_quitting >= b:time_before + Assert b:ale_quitting <= ale#util#ClockMilliseconds() Execute(EnterEvent should set b:ale_quitting to 0): let b:ale_quitting = 1 @@ -20,3 +24,16 @@ Execute(EnterEvent should set b:ale_quitting to 0): call ale#events#EnterEvent(bufnr('')) AssertEqual 0, b:ale_quitting + +Execute(The QuitRecently function should work when the variable isn't set): + AssertEqual 0, ale#events#QuitRecently(bufnr('')) + +Execute(The QuitRecently function should return 1 when ALE quit recently): + let b:ale_quitting = ale#util#ClockMilliseconds() + + AssertEqual 1, ale#events#QuitRecently(bufnr('')) + +Execute(The QuitRecently function should return 0 when a second has passed): + let b:ale_quitting = ale#util#ClockMilliseconds() - 1001 + + AssertEqual 0, ale#events#QuitRecently(bufnr('')) -- cgit v1.2.3