]> git.madduck.net Git - etc/vim.git/blob - .vim/bundle/ale/test/lsp/test_lsp_client_messages.vader

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

Do not set EDITOR/VISUAL for shell
[etc/vim.git] / .vim / bundle / ale / test / lsp / test_lsp_client_messages.vader
1 Before:
2   let g:ale_lsp_next_version_id = 1
3
4   call ale#test#SetDirectory('/testplugin/test/lsp')
5   call ale#test#SetFilename('foo/bar.ts')
6
7 After:
8   call ale#test#RestoreDirectory()
9
10 Execute(ale#lsp#message#Initialize() should return correct messages):
11   AssertEqual
12   \ [
13   \   0,
14   \   'initialize',
15   \   {
16   \    'processId': getpid(),
17   \    'rootPath': '/foo/bar',
18   \    'capabilities': {},
19   \    'initializationOptions': {'foo': 'bar'},
20   \    'rootUri': 'file:///foo/bar',
21   \   }
22   \ ],
23   \ ale#lsp#message#Initialize('/foo/bar', {'foo': 'bar'}, {})
24
25 Execute(ale#lsp#message#Initialized() should return correct messages):
26   AssertEqual [1, 'initialized', {}], ale#lsp#message#Initialized()
27
28 Execute(ale#lsp#message#Shutdown() should return correct messages):
29   AssertEqual [0, 'shutdown'], ale#lsp#message#Shutdown()
30
31 Execute(ale#lsp#message#Exit() should return correct messages):
32   AssertEqual [1, 'exit'], ale#lsp#message#Exit(),
33
34 Given typescript(A TypeScript file with 3 lines):
35   Foo()
36   Bar()
37   Baz()
38
39 Execute(ale#util#GetBufferContents() should return correctly formatted newlines):
40   AssertEqual "Foo()\nBar()\nBaz()\n", ale#util#GetBufferContents(bufnr(''))
41
42 Execute(ale#lsp#message#DidOpen() should return correct messages):
43   let g:ale_lsp_next_version_id = 12
44   AssertEqual
45   \ [
46   \   1,
47   \   'textDocument/didOpen',
48   \   {
49   \     'textDocument': {
50   \         'uri': ale#path#ToFileURI(g:dir . '/foo/bar.ts'),
51   \         'languageId': 'typescript',
52   \         'version': 12,
53   \         'text': "Foo()\nBar()\nBaz()\n",
54   \     },
55   \   }
56   \ ],
57   \ ale#lsp#message#DidOpen(bufnr(''), 'typescript')
58
59 Execute(ale#lsp#message#DidChange() should return correct messages):
60   let g:ale_lsp_next_version_id = 34
61
62   AssertEqual
63   \ [
64   \   1,
65   \   'textDocument/didChange',
66   \   {
67   \     'textDocument': {
68   \         'uri': ale#path#ToFileURI(g:dir . '/foo/bar.ts'),
69   \         'version': 34,
70   \     },
71   \     'contentChanges': [{'text': "Foo()\nBar()\nBaz()\n"}],
72   \   }
73   \ ],
74   \ ale#lsp#message#DidChange(bufnr(''))
75   " The version numbers should increment.
76   AssertEqual
77   \ 35,
78   \ ale#lsp#message#DidChange(bufnr(''))[2].textDocument.version
79   AssertEqual
80   \ 36,
81   \ ale#lsp#message#DidChange(bufnr(''))[2].textDocument.version
82
83 Execute(ale#lsp#message#DidSave() should return correct messages):
84   AssertEqual
85   \ [
86   \   1,
87   \   'textDocument/didSave',
88   \   {
89   \     'textDocument': {
90   \         'uri': ale#path#ToFileURI(g:dir . '/foo/bar.ts'),
91   \     },
92   \   }
93   \ ],
94   \ ale#lsp#message#DidSave(bufnr(''), v:false)
95
96 Execute(ale#lsp#message#DidSave() should return correct message with includeText capability):
97   AssertEqual
98   \ [
99   \   1,
100   \   'textDocument/didSave',
101   \   {
102   \     'textDocument': {
103   \         'uri': ale#path#ToFileURI(g:dir . '/foo/bar.ts'),
104   \         'version': 1,
105   \     },
106   \     'text': ale#util#GetBufferContents(bufnr('')),
107   \   }
108   \ ],
109   \ ale#lsp#message#DidSave(bufnr(''), v:true)
110
111 Execute(ale#lsp#message#DidClose() should return correct messages):
112   AssertEqual
113   \ [
114   \   1,
115   \   'textDocument/didClose',
116   \   {
117   \     'textDocument': {
118   \         'uri': ale#path#ToFileURI(g:dir . '/foo/bar.ts'),
119   \     },
120   \   }
121   \ ],
122   \ ale#lsp#message#DidClose(bufnr(''))
123
124 Execute(ale#lsp#message#Completion() should return correct messages):
125   AssertEqual
126   \ [
127   \   0,
128   \   'textDocument/completion',
129   \   {
130   \     'textDocument': {
131   \         'uri': ale#path#ToFileURI(g:dir . '/foo/bar.ts'),
132   \     },
133   \     'position': {'line': 11, 'character': 33},
134   \   }
135   \ ],
136   \ ale#lsp#message#Completion(bufnr(''), 12, 34, '')
137
138 Execute(ale#lsp#message#Completion() should return correct messages with a trigger charaacter):
139   AssertEqual
140   \ [
141   \   0,
142   \   'textDocument/completion',
143   \   {
144   \     'textDocument': {
145   \         'uri': ale#path#ToFileURI(g:dir . '/foo/bar.ts'),
146   \     },
147   \     'position': {'line': 11, 'character': 33},
148   \     'context': {'triggerKind': 2, 'triggerCharacter': '.'},
149   \   }
150   \ ],
151   \ ale#lsp#message#Completion(bufnr(''), 12, 34, '.')
152   \
153 Execute(ale#lsp#message#Definition() should return correct messages):
154   AssertEqual
155   \ [
156   \   0,
157   \   'textDocument/definition',
158   \   {
159   \     'textDocument': {
160   \         'uri': ale#path#ToFileURI(g:dir . '/foo/bar.ts'),
161   \     },
162   \     'position': {'line': 11, 'character': 33},
163   \   }
164   \ ],
165   \ ale#lsp#message#Definition(bufnr(''), 12, 34)
166
167 Execute(ale#lsp#message#TypeDefinition() should return correct messages):
168   AssertEqual
169   \ [
170   \   0,
171   \   'textDocument/typeDefinition',
172   \   {
173   \     'textDocument': {
174   \         'uri': ale#path#ToFileURI(g:dir . '/foo/bar.ts'),
175   \     },
176   \     'position': {'line': 11, 'character': 33},
177   \   }
178   \ ],
179   \ ale#lsp#message#TypeDefinition(bufnr(''), 12, 34)
180
181 Execute(ale#lsp#message#Implementation() should return correct messages):
182   AssertEqual
183   \ [
184   \   0,
185   \   'textDocument/implementation',
186   \   {
187   \     'textDocument': {
188   \         'uri': ale#path#ToFileURI(g:dir . '/foo/bar.ts'),
189   \     },
190   \     'position': {'line': 11, 'character': 33},
191   \   }
192   \ ],
193   \ ale#lsp#message#Implementation(bufnr(''), 12, 34)
194
195 Execute(ale#lsp#message#References() should return correct messages):
196   AssertEqual
197   \ [
198   \   0,
199   \   'textDocument/references',
200   \   {
201   \     'textDocument': {
202   \         'uri': ale#path#ToFileURI(g:dir . '/foo/bar.ts'),
203   \     },
204   \     'position': {'line': 11, 'character': 33},
205   \     'context': {'includeDeclaration': v:false},
206   \   }
207   \ ],
208   \ ale#lsp#message#References(bufnr(''), 12, 34)
209
210 Execute(ale#lsp#message#Symbol() should return correct messages):
211   AssertEqual
212   \ [
213   \   0,
214   \   'workspace/symbol',
215   \   {
216   \     'query': 'foobar',
217   \   }
218   \ ],
219   \ ale#lsp#message#Symbol('foobar')
220
221 Execute(ale#lsp#message#Hover() should return correct messages):
222   AssertEqual
223   \ [
224   \   0,
225   \   'textDocument/hover',
226   \   {
227   \     'textDocument': {
228   \         'uri': ale#path#ToFileURI(g:dir . '/foo/bar.ts'),
229   \     },
230   \     'position': {'line': 11, 'character': 33},
231   \   }
232   \ ],
233   \ ale#lsp#message#Hover(bufnr(''), 12, 34)
234
235 Execute(ale#lsp#message#DidChangeConfiguration() should return correct messages):
236   let g:ale_lsp_configuration = {
237   \ 'foo': 'bar'
238   \ }
239   AssertEqual
240   \ [
241   \   1,
242   \   'workspace/didChangeConfiguration',
243   \   {
244   \     'settings': {
245   \         'foo': 'bar',
246   \     }
247   \   }
248   \ ],
249   \ ale#lsp#message#DidChangeConfiguration(bufnr(''), g:ale_lsp_configuration)
250
251 Execute(ale#lsp#message#Diagnostic() should return correct messages):
252   AssertEqual
253   \ [
254   \   0,
255   \   'textDocument/diagnostic',
256   \   {
257   \     'textDocument': {
258   \         'uri': ale#path#ToFileURI(g:dir . '/foo/bar.ts'),
259   \     },
260   \   }
261   \ ],
262   \ ale#lsp#message#Diagnostic(bufnr(''))
263
264 Execute(ale#lsp#tsserver_message#Open() should return correct messages):
265   AssertEqual
266   \ [
267   \   1,
268   \   'ts@open',
269   \   {
270   \     'file': ale#path#Simplify(g:dir . '/foo/bar.ts'),
271   \   }
272   \ ],
273   \ ale#lsp#tsserver_message#Open(bufnr(''))
274
275 Execute(ale#lsp#tsserver_message#Close() should return correct messages):
276   AssertEqual
277   \ [
278   \   1,
279   \   'ts@close',
280   \   {
281   \     'file': ale#path#Simplify(g:dir . '/foo/bar.ts'),
282   \   }
283   \ ],
284   \ ale#lsp#tsserver_message#Close(bufnr(''))
285
286 Execute(ale#lsp#tsserver_message#Change() should return correct messages):
287   AssertEqual
288   \ [
289   \   1,
290   \   'ts@change',
291   \   {
292   \     'file': ale#path#Simplify(g:dir . '/foo/bar.ts'),
293   \     'line': 1,
294   \     'offset': 1,
295   \     'endLine': 1073741824,
296   \     'endOffset': 1,
297   \     'insertString': "Foo()\nBar()\nBaz()\n",
298   \   }
299   \ ],
300   \ ale#lsp#tsserver_message#Change(bufnr(''))
301
302 Execute(ale#lsp#tsserver_message#Geterr() should return correct messages):
303   AssertEqual
304   \ [
305   \   1,
306   \   'ts@geterr',
307   \   {
308   \     'files': [ale#path#Simplify(g:dir . '/foo/bar.ts')],
309   \   }
310   \ ],
311   \ ale#lsp#tsserver_message#Geterr(bufnr(''))
312
313 Execute(ale#lsp#tsserver_message#Completions() should return correct messages):
314   AssertEqual
315   \ [
316   \   0,
317   \   'ts@completions',
318   \   {
319   \     'file': ale#path#Simplify(g:dir . '/foo/bar.ts'),
320   \     'line': 347,
321   \     'offset': 12,
322   \     'prefix': 'abc',
323   \     'includeExternalModuleExports': 1,
324   \   }
325   \ ],
326   \ ale#lsp#tsserver_message#Completions(bufnr(''), 347, 12, 'abc', 1)
327
328 Execute(ale#lsp#tsserver_message#CompletionEntryDetails() should return correct messages):
329   AssertEqual
330   \ [
331   \   0,
332   \   'ts@completionEntryDetails',
333   \   {
334   \     'file': ale#path#Simplify(g:dir . '/foo/bar.ts'),
335   \     'line': 347,
336   \     'offset': 12,
337   \     'entryNames': ['foo', 'bar'],
338   \   }
339   \ ],
340   \ ale#lsp#tsserver_message#CompletionEntryDetails(bufnr(''), 347, 12, ['foo', 'bar'])
341
342 Execute(ale#lsp#tsserver_message#Definition() should return correct messages):
343   AssertEqual
344   \ [
345   \   0,
346   \   'ts@definition',
347   \   {
348   \     'file': ale#path#Simplify(g:dir . '/foo/bar.ts'),
349   \     'line': 347,
350   \     'offset': 12,
351   \   }
352   \ ],
353   \ ale#lsp#tsserver_message#Definition(bufnr(''), 347, 12)
354
355 Execute(ale#lsp#tsserver_message#TypeDefinition() should return correct messages):
356   AssertEqual
357   \ [
358   \   0,
359   \   'ts@typeDefinition',
360   \   {
361   \     'file': ale#path#Simplify(g:dir . '/foo/bar.ts'),
362   \     'line': 347,
363   \     'offset': 12,
364   \   }
365   \ ],
366   \ ale#lsp#tsserver_message#TypeDefinition(bufnr(''), 347, 12)
367
368 Execute(ale#lsp#tsserver_message#Implementation() should return correct messages):
369   AssertEqual
370   \ [
371   \   0,
372   \   'ts@implementation',
373   \   {
374   \     'file': ale#path#Simplify(g:dir . '/foo/bar.ts'),
375   \     'line': 347,
376   \     'offset': 12,
377   \   }
378   \ ],
379   \ ale#lsp#tsserver_message#Implementation(bufnr(''), 347, 12)
380
381 Execute(ale#lsp#tsserver_message#References() should return correct messages):
382   AssertEqual
383   \ [
384   \   0,
385   \   'ts@references',
386   \   {
387   \     'file': ale#path#Simplify(g:dir . '/foo/bar.ts'),
388   \     'line': 347,
389   \     'offset': 12,
390   \   }
391   \ ],
392   \ ale#lsp#tsserver_message#References(bufnr(''), 347, 12)
393
394 Execute(ale#lsp#tsserver_message#Quickinfo() should return correct messages):
395   AssertEqual
396   \ [
397   \   0,
398   \   'ts@quickinfo',
399   \   {
400   \     'file': ale#path#Simplify(g:dir . '/foo/bar.ts'),
401   \     'line': 347,
402   \     'offset': 12,
403   \   }
404   \ ],
405   \ ale#lsp#tsserver_message#Quickinfo(bufnr(''), 347, 12)