summaryrefslogtreecommitdiff
path: root/test/test_lint_on_filetype_changed.vader
blob: 591a51206d5ba2c61b886733865cf3093e83a81c (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
Before:
  Save &filetype

  let g:queue_calls = []

  unlet! b:ale_lint_on_enter

  function! ale#Queue(...)
    call add(g:queue_calls, a:000)
  endfunction

After:
  Restore

  unlet! b:ale_lint_on_enter
  unlet! g:queue_calls

  " Reload the ALE code to load the real function again.
  runtime autoload/ale.vim

  unlet! b:ale_original_filetype

Execute(The original filetype should be set on BufEnter):
  let &filetype = 'foobar'

  call ale#events#EnterEvent(bufnr(''))

  AssertEqual 'foobar', b:ale_original_filetype

  let &filetype = 'bazboz'

  call ale#events#EnterEvent(bufnr(''))

  AssertEqual 'bazboz', b:ale_original_filetype

Execute(Linting should not be queued when the filetype is the same):
  let b:ale_original_filetype = 'foobar'
  let g:queue_calls = []

  call ale#events#FileTypeEvent(bufnr(''), 'foobar')

  AssertEqual [], g:queue_calls

Execute(Linting should be queued when the filetype changes):
  let b:ale_original_filetype = 'foobar'
  let g:queue_calls = []

  call ale#events#FileTypeEvent(bufnr(''), 'bazboz')

  AssertEqual [[300, 'lint_file', bufnr('')]], g:queue_calls

Execute(Linting shouldn't be done when the original filetype was blank and linting on enter is off):
  let b:ale_lint_on_enter = 0
  let b:ale_original_filetype = ''

  call ale#events#FileTypeEvent(bufnr(''), 'bazboz')

  AssertEqual [], g:queue_calls

Execute(Linting should be done when the original filetype was blank and linting on enter is on):
  let b:ale_lint_on_enter = 1
  let b:ale_original_filetype = ''

  call ale#events#FileTypeEvent(bufnr(''), 'bazboz')

  AssertEqual [[300, 'lint_file', bufnr('')]], g:queue_calls

Execute(The new filetype should become the "original" one if the original was blank and linting on enter is off):
  let b:ale_lint_on_enter = 0
  let b:ale_original_filetype = ''

  call ale#events#FileTypeEvent(bufnr(''), 'bazboz')

  AssertEqual 'bazboz', b:ale_original_filetype