summaryrefslogtreecommitdiff
path: root/test/test_linter_defintion_processing.vader
blob: 52d405305ace0bcbe2cd12b90e7f629ca8c36070 (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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
Execute (PreProcess should throw when the linter object is not a Dictionary):
  AssertThrows call ale#linter#PreProcess('')
  AssertEqual 'The linter object must be a Dictionary', g:vader_exception

Execute (PreProcess should throw when there is no name):
  AssertThrows call ale#linter#PreProcess({
  \ 'callback': 'SomeFunction',
  \ 'executable': 'echo',
  \ 'command': 'echo',
  \})
  AssertEqual '`name` must be defined to name the linter', g:vader_exception

Execute (PreProcess should throw when there is no callback):
  AssertThrows call ale#linter#PreProcess({
  \ 'name': 'foo',
  \ 'executable': 'echo',
  \ 'command': 'echo',
  \})
  AssertEqual '`callback` must be defined with a callback to accept output', g:vader_exception

Execute (PreProcess should throw when then callback is not a function):
  AssertThrows call ale#linter#PreProcess({
  \ 'name': 'foo',
  \ 'callback': 1,
  \ 'executable': 'echo',
  \ 'command': 'echo',
  \})
  AssertEqual '`callback` must be defined with a callback to accept output', g:vader_exception

Execute (PreProcess should throw when there is no executable or executable_callback):
  AssertThrows call ale#linter#PreProcess({
  \ 'name': 'foo',
  \ 'callback': 'SomeFunction',
  \ 'command': 'echo',
  \})
  AssertEqual 'Either `executable` or `executable_callback` must be defined', g:vader_exception

Execute (PreProcess should throw when executable is not a string):
  AssertThrows call ale#linter#PreProcess({
  \ 'name': 'foo',
  \ 'callback': 'SomeFunction',
  \ 'executable': 123,
  \ 'command': 'echo',
  \})
  AssertEqual '`executable` must be a string if defined', g:vader_exception

Execute (PreProcess should throw when executable_callback is not a callback):
  AssertThrows call ale#linter#PreProcess({
  \ 'name': 'foo',
  \ 'callback': 'SomeFunction',
  \ 'executable_callback': 123,
  \ 'command': 'echo',
  \})
  AssertEqual '`executable_callback` must be a callback if defined', g:vader_exception

Execute (PreProcess should throw when there is no command):
  AssertThrows call ale#linter#PreProcess({
  \ 'name': 'foo',
  \ 'callback': 'SomeFunction',
  \ 'executable': 'echo',
  \})
  AssertEqual 'Either `command`, `executable_callback`, `command_chain` must be defined', g:vader_exception

Execute (PreProcess should throw when command is not a string):
  AssertThrows call ale#linter#PreProcess({
  \ 'name': 'foo',
  \ 'callback': 'SomeFunction',
  \ 'executable': 'echo',
  \ 'command': [],
  \})
  AssertEqual '`command` must be a string if defined', g:vader_exception

Execute (PreProcess should throw when command_callback is not a callback):
  AssertThrows call ale#linter#PreProcess({
  \ 'name': 'foo',
  \ 'callback': 'SomeFunction',
  \ 'executable': 'echo',
  \ 'command_callback': 123,
  \})
  AssertEqual '`command_callback` must be a callback if defined', g:vader_exception

Execute (PreProcess should when the output stream isn't a valid string):
  AssertThrows call ale#linter#PreProcess({
  \ 'name': 'foo',
  \ 'callback': 'SomeFunction',
  \ 'executable': 'echo',
  \ 'command': 'echo',
  \ 'output_stream': 'xxx',
  \})
  AssertEqual "`output_stream` must be 'stdout', 'stderr', or 'both'", g:vader_exception

Execute (PreProcess should not throw when everything is correct):
  call ale#linter#PreProcess({
  \ 'name': 'foo',
  \ 'callback': 'SomeFunction',
  \ 'executable': 'echo',
  \ 'command': 'echo',
  \})

Execute (PreProcess should accept an stdout output_stream):
  call ale#linter#PreProcess({
  \ 'name': 'foo',
  \ 'callback': 'SomeFunction',
  \ 'executable': 'echo',
  \ 'command': 'echo',
  \ 'output_stream': 'stdout',
  \})

Execute (PreProcess should accept an stderr output_stream):
  call ale#linter#PreProcess({
  \ 'name': 'foo',
  \ 'callback': 'SomeFunction',
  \ 'executable': 'echo',
  \ 'command': 'echo',
  \ 'output_stream': 'stderr',
  \})

Execute (PreProcess should accept a 'both' output_stream):
  call ale#linter#PreProcess({
  \ 'name': 'foo',
  \ 'callback': 'SomeFunction',
  \ 'executable': 'echo',
  \ 'command': 'echo',
  \ 'output_stream': 'both',
  \})