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
|
Before:
call ale#test#SetDirectory('/testplugin/test/handler')
cd ..
runtime ale_linters/ruby/rails_best_practices.vim
After:
call ale#test#RestoreDirectory()
call ale#linter#Reset()
Execute(The rails_best_practices handler should parse JSON correctly):
call ale#test#SetFilename('ruby_fixtures/valid_rails_app/app/models/thing.rb')
AssertEqual
\ [
\ {
\ 'lnum': 5,
\ 'text': 'use local variable',
\ 'type': 'W',
\ },
\ {
\ 'lnum': 10,
\ 'text': 'other advice',
\ 'type': 'W',
\ }
\ ],
\ ale_linters#ruby#rails_best_practices#Handle(bufnr(''), [
\ '[',
\ '{',
\ '"message": "use local variable",',
\ '"line_number": "5",',
\ printf('"filename": "%s"', substitute(expand('%:p'), '\\', '\\\\', 'g')),
\ '},{',
\ '"message": "other advice",',
\ '"line_number": "10",',
\ printf('"filename": "%s"', substitute(expand('%:p'), '\\', '\\\\', 'g')),
\ '}',
\ ']'
\ ])
Execute(The rails_best_practices handler should parse JSON correctly when there is no output from the tool):
AssertEqual
\ [],
\ ale_linters#ruby#rails_best_practices#Handle(347, [
\ ])
Execute(The rails_best_practices handler should handle garbage output):
AssertEqual
\ [],
\ ale_linters#ruby#rails_best_practices#Handle(347, [
\ 'No such command in 2.4.1 of ruby',
\ ])
|