summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorw0rp <devw0rp@gmail.com>2017-07-26 23:17:46 +0100
committerw0rp <devw0rp@gmail.com>2017-07-26 23:17:46 +0100
commitded1bc14df6ddacd373cf9fe635f8489b9fb4f69 (patch)
tree0f979b4046b34b05f894af131fc49fa4fb98cef3
parent810e884dbe18adbe355e4c88d30f40547433dec5 (diff)
downloadale-ded1bc14df6ddacd373cf9fe635f8489b9fb4f69.zip
#810 Ignore output which isn't JSON for brakeman
-rw-r--r--ale_linters/ruby/brakeman.vim7
-rw-r--r--test/handler/test_brakeman_handler.vader24
2 files changed, 19 insertions, 12 deletions
diff --git a/ale_linters/ruby/brakeman.vim b/ale_linters/ruby/brakeman.vim
index 269c18f0..565c8c70 100644
--- a/ale_linters/ruby/brakeman.vim
+++ b/ale_linters/ruby/brakeman.vim
@@ -9,7 +9,12 @@ function! ale_linters#ruby#brakeman#Handle(buffer, lines) abort
return []
endif
- let l:result = json_decode(join(a:lines, ''))
+ try
+ let l:result = json_decode(join(a:lines, ''))
+ catch /E474/
+ " Ignore invalid JSON
+ return []
+ endtry
let l:output = []
diff --git a/test/handler/test_brakeman_handler.vader b/test/handler/test_brakeman_handler.vader
index 240a0990..02d70234 100644
--- a/test/handler/test_brakeman_handler.vader
+++ b/test/handler/test_brakeman_handler.vader
@@ -1,20 +1,15 @@
Before:
- " Switch to the test rails directory.
- let b:path = getcwd()
- silent! cd /testplugin/test/handler
- cd ../ruby_fixtures/valid_rails_app/app/models
+ call ale#test#SetDirectory('/testplugin/test/handler')
+ cd ..
- runtime ale_linters/ruby/brakeman.vim
+ runtime ale_linters/ruby/brakeman.vim
After:
- " Switch back to whatever directory it was that we started on.
- silent! 'cd ' . fnameescape(b:path)
- unlet! b:path
-
- call ale#linter#Reset()
+ call ale#test#RestoreDirectory()
+ call ale#linter#Reset()
Execute(The brakeman handler should parse JSON correctly):
- silent file! thing.rb
+ call ale#test#SetFilename('ruby_fixtures/valid_rails_app/app/models/thing.rb')
AssertEqual
\ [
@@ -78,3 +73,10 @@ Execute(The brakeman handler should parse JSON correctly when there is no output
\ [],
\ ale_linters#ruby#brakeman#Handle(347, [
\ ])
+ \
+Execute(The brakeman handler should handle garbage output):
+ AssertEqual
+ \ [],
+ \ ale_linters#ruby#brakeman#Handle(347, [
+ \ 'No such command in 2.4.1 of ruby',
+ \ ])