1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
Before:
Save g:ale_ruby_reek_show_context
Save g:ale_ruby_reek_show_wiki_link
let g:ale_ruby_reek_show_context = 0
let g:ale_ruby_reek_show_wiki_link = 0
runtime ale_linters/ruby/reek.vim
After:
Restore
call ale#linter#Reset()
Execute(The reek handler should parse JSON correctly, with only context enabled):
let g:ale_ruby_reek_show_context = 1
AssertEqual
\ [
\ {
\ 'lnum': 12,
\ 'text': 'Context#method violates rule number one',
\ 'code': 'Rule1',
\ 'type': 'W',
\ },
\ {
\ 'lnum': 34,
\ 'text': 'Context#method violates rule number two',
\ 'code': 'Rule2',
\ 'type': 'W',
\ },
\ {
\ 'lnum': 56,
\ 'text': 'Context#method violates rule number two',
\ 'code': 'Rule2',
\ 'type': 'W',
\ },
\ ],
\ ale_linters#ruby#reek#Handle(347, [
\ '[{"context":"Context#method","lines":[12],"message":"violates rule number one","smell_type":"Rule1","source":"/home/user/file.rb","parameter":"bad parameter","wiki_link":"https://example.com/Rule1.md"},{"context":"Context#method","lines":[34, 56],"message":"violates rule number two","smell_type":"Rule2","source":"/home/user/file.rb","name":"bad code","count":2,"wiki_link":"https://example.com/Rule1.md"}]'
\ ])
Execute(The reek handler should parse JSON correctly, with no context or wiki links):
AssertEqual
\ [
\ {
\ 'lnum': 12,
\ 'text': 'violates rule number one',
\ 'code': 'Rule1',
\ 'type': 'W',
\ },
\ ],
\ ale_linters#ruby#reek#Handle(347, [
\ '[{"context":"Context#method","lines":[12],"message":"violates rule number one","smell_type":"Rule1","source":"/home/user/file.rb","parameter":"bad parameter","wiki_link":"https://example.com/Rule1.md"}]'
\ ])
Execute(The reek handler should parse JSON correctly, with both context and wiki links):
let g:ale_ruby_reek_show_context = 1
let g:ale_ruby_reek_show_wiki_link = 1
AssertEqual
\ [
\ {
\ 'lnum': 12,
\ 'text': 'Context#method violates rule number one [https://example.com/Rule1.md]',
\ 'code': 'Rule1',
\ 'type': 'W',
\ },
\ ],
\ ale_linters#ruby#reek#Handle(347, [
\ '[{"context":"Context#method","lines":[12],"message":"violates rule number one","smell_type":"Rule1","source":"/home/user/file.rb","parameter":"bad parameter","wiki_link":"https://example.com/Rule1.md"}]'
\ ])
Execute(The reek handler should parse JSON correctly when there is no output from reek):
AssertEqual
\ [],
\ ale_linters#ruby#reek#Handle(347, [
\ ])
Execute(The reek handler should handle garbage output):
AssertEqual
\ [],
\ ale_linters#ruby#reek#Handle(347, [
\ 'No such command in 2.4.1 of ruby',
\ ])
|