summaryrefslogtreecommitdiff
path: root/test/handler/test_rails_best_practices_handler.vader
blob: f6d69eee375cc3ab0bbf3c1591887c28bafd22b9 (plain)
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('test-files/ruby/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',
  \ ])