summaryrefslogtreecommitdiff
path: root/test/test_disabling_ale.vader
blob: 660e4aa214a00424b7578ac13f509d370a998d7e (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
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
Before:
  Save g:ale_buffer_info
  Save g:ale_enabled
  Save b:ale_enabled
  Save g:ale_maximum_file_size
  Save b:ale_maximum_file_size

  function! SetUpCursorData()
    let g:ale_buffer_info = {
    \ bufnr('%'): {
    \   'loclist': [
    \     {
    \       'lnum': 2,
    \       'col': 10,
    \       'linter_name': 'testlinter',
    \       'type': 'W',
    \       'text': 'X'
    \     },
    \   ],
    \ },
    \}

    call cursor(2, 16)
  endfunction

  function! TestCallback(buffer, output)
    return []
  endfunction

  call ale#linter#Define('foobar', {
  \ 'name': 'testlinter',
  \ 'callback': 'TestCallback',
  \ 'executable': 'echo',
  \ 'command': 'true',
  \})

  function GetLastMessage()
    redir => l:output
      silent mess
    redir END

    " Filter out messages that could come from saving this test file.
    let l:lines = filter(split(l:output, "\n"), 'v:val !~ ''written\|No line''')

    return empty(l:lines) ? '' : l:lines[-1]
  endfunction

  echomsg ''

After:
  Restore
  call ale#linter#Reset()
  delfunction TestCallback
  delfunction GetLastMessage
  delfunction SetUpCursorData

Given foobar (Some imaginary filetype):
  foo
  bar
  baz

Execute(Linting shouldn't happen when ALE is disabled globally):
  let g:ale_enabled = 0
  let g:ale_buffer_info = {}

  call ale#Queue(0)

  AssertEqual {}, g:ale_buffer_info
  call SetUpCursorData()
  call ale#cursor#EchoCursorWarning()
  AssertEqual '', GetLastMessage()

Execute(Linting shouldn't happen when ALE is disabled locally):
  let b:ale_enabled = 0
  let g:ale_buffer_info = {}

  call ale#Queue(0)

  AssertEqual {}, g:ale_buffer_info
  call SetUpCursorData()
  call ale#cursor#EchoCursorWarning()
  AssertEqual '', GetLastMessage()

Execute(Linting shouldn't happen when the file is too large with global options):
  let g:ale_maximum_file_size = 12
  let g:ale_buffer_info = {}

  call ale#Queue(0)

  AssertEqual {}, g:ale_buffer_info
  " We shouldn't show cursor warnings.
  call SetUpCursorData()
  call ale#cursor#EchoCursorWarning()
  AssertEqual '', GetLastMessage()

Execute(Linting shouldn't happen when the file is too large with local options):
  let b:ale_maximum_file_size = 12
  let g:ale_buffer_info = {}

  call ale#Queue(0)

  AssertEqual {}, g:ale_buffer_info
  call SetUpCursorData()
  call ale#cursor#EchoCursorWarning()
  AssertEqual '', GetLastMessage()