summaryrefslogtreecommitdiff
path: root/test/completion/test_public_completion_api.vader
blob: d4db2d6f4ed860cf7b9fee8ee60e3c3b36448b95 (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
Before:
  call ale#linter#Reset()

  unlet! b:ale_linters
  unlet! b:ale_completion_info
  unlet! b:ale_completion_response
  unlet! b:ale_completion_parser
  unlet! b:ale_completion_result

  function! Identity(x) abort
    return a:x
  endfunction

After:
  delfunction Identity

  call ale#linter#Reset()

  unlet! b:ale_linters
  unlet! b:ale_completion_info
  unlet! b:ale_completion_response
  unlet! b:ale_completion_parser
  unlet! b:ale_completion_result

Execute(ale#completion#GetCompletionResult() should return v:null when there are no results):
  AssertEqual v:null, ale#completion#GetCompletionResult()

Execute(ale#completion#GetCompletionResult() should parse the result when it has yet to be parsed):
  let b:ale_completion_response = [1]
  let b:ale_completion_parser = 'Identity'

  AssertEqual [1], ale#completion#GetCompletionResult()
  Assert !exists('b:ale_completion_response')
  Assert !exists('b:ale_completion_parser')
  AssertEqual [1], b:ale_completion_result

Execute(ale#completion#GetCompletionResult() should return a result computed previously):
  let b:ale_completion_result = [1]

  Assert !exists('b:ale_completion_response')
  Assert !exists('b:ale_completion_parser')
  AssertEqual [1], ale#completion#GetCompletionResult()

Execute(ale#completion#GetCompletionPosition() should return 0 when there is no completion information):
  AssertEqual 0, ale#completion#GetCompletionPosition()

Given python(Some Python file):
  foo bar

Execute(ale#completion#GetCompletionPosition() should return the position in the file when information is available):
  let b:ale_completion_info = {'line': 1, 'column': 6}

  " This is the first character of 'bar'
  AssertEqual 4, ale#completion#GetCompletionPosition()

Execute(ale#completion#CanProvideCompletions should return 0 when no completion sources are available):
  AssertEqual 0, ale#completion#CanProvideCompletions()

Execute(ale#completion#CanProvideCompletions should return 1 when at least one completion source is available):
  runtime ale_linters/python/pyls.vim
  let b:ale_linters = ['pyls']

  AssertEqual 1, ale#completion#CanProvideCompletions()