Skip to content

Commit 7cff51e

Browse files
committed
tests: add tests for ALEFindReferences -contents feature
1 parent a012900 commit 7cff51e

File tree

1 file changed

+161
-0
lines changed

1 file changed

+161
-0
lines changed

test/test_find_references.vader

Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ Before:
33
call ale#test#SetFilename('dummy.txt')
44

55
Save g:ale_default_navigation
6+
Save g:ale_references_show_contents
67

78
let g:old_filename = expand('%:p')
89
let g:Callback = ''
@@ -15,6 +16,7 @@ Before:
1516
let g:conn_id = v:null
1617
let g:InitCallback = v:null
1718
let g:ale_default_navigation = 'buffer'
19+
let g:ale_references_show_contents = 1
1820

1921
runtime autoload/ale/lsp_linter.vim
2022
runtime autoload/ale/lsp.vim
@@ -378,11 +380,13 @@ Execute(LSP reference responses should be handled):
378380
\ 'filename': ale#path#Simplify(g:dir . '/completion_dummy_file'),
379381
\ 'line': 3,
380382
\ 'column': 8,
383+
\ 'match': '',
381384
\ },
382385
\ {
383386
\ 'filename': ale#path#Simplify(g:dir . '/other_file'),
384387
\ 'line': 8,
385388
\ 'column': 16,
389+
\ 'match': '',
386390
\ },
387391
\ ],
388392
\ g:item_list
@@ -415,6 +419,163 @@ Execute(LSP reference responses should be put to quickfix):
415419
\ 2,
416420
\ len(getqflist())
417421

422+
Execute(LSP reference responses should contain line contents):
423+
let tempfile = tempname()
424+
let contents = ['line1 sometext', 'line2 othertext', 'line3 moretext']
425+
call writefile(contents, tempfile)
426+
427+
call ale#references#SetMap({3: { 'show_contents': 1 }})
428+
429+
call ale#references#HandleLSPResponse(
430+
\ 1,
431+
\ {
432+
\ 'id': 3,
433+
\ 'result': [
434+
\ {
435+
\ 'uri': ale#path#ToFileURI(tempfile),
436+
\ 'range': {
437+
\ 'start': {'line': 0, 'character': 6},
438+
\ },
439+
\ },
440+
\ {
441+
\ 'uri': ale#path#ToFileURI(tempfile),
442+
\ 'range': {
443+
\ 'start': {'line': 2, 'character': 1},
444+
\ },
445+
\ },
446+
\ ],
447+
\ }
448+
\)
449+
AssertEqual
450+
\ 2,
451+
\ len(g:item_list)
452+
453+
AssertEqual contents[0], g:item_list[0]['match']
454+
AssertEqual contents[2], g:item_list[1]['match']
455+
456+
call ale#references#SetMap({3: { 'show_contents': 1, 'open_in': 'quickfix' }})
457+
458+
call ale#references#HandleLSPResponse(
459+
\ 1,
460+
\ {
461+
\ 'id': 3,
462+
\ 'result': [
463+
\ {
464+
\ 'uri': ale#path#ToFileURI(tempfile),
465+
\ 'range': {
466+
\ 'start': {'line': 0, 'character': 6},
467+
\ },
468+
\ },
469+
\ {
470+
\ 'uri': ale#path#ToFileURI(tempfile),
471+
\ 'range': {
472+
\ 'start': {'line': 2, 'character': 1},
473+
\ },
474+
\ },
475+
\ ],
476+
\ }
477+
\)
478+
479+
AssertEqual
480+
\ 2,
481+
\ len(getqflist())
482+
483+
AssertEqual contents[0], getqflist()[0]['text']
484+
AssertEqual contents[2], getqflist()[1]['text']
485+
486+
Execute(LSP reference responses should not contain line contents when disabled):
487+
call ale#references#SetMap({3: { 'show_contents': 0 }})
488+
489+
call ale#references#HandleLSPResponse(
490+
\ 1,
491+
\ {
492+
\ 'id': 3,
493+
\ 'result': [
494+
\ {
495+
\ 'uri': ale#path#ToFileURI('dummy'),
496+
\ 'range': {
497+
\ 'start': {'line': 0, 'character': 6},
498+
\ },
499+
\ },
500+
\ {
501+
\ 'uri': ale#path#ToFileURI('dummy'),
502+
\ 'range': {
503+
\ 'start': {'line': 2, 'character': 1},
504+
\ },
505+
\ },
506+
\ ],
507+
\ }
508+
\)
509+
AssertEqual
510+
\ 2,
511+
\ len(g:item_list)
512+
513+
AssertEqual '', g:item_list[0]['match']
514+
AssertEqual '', g:item_list[1]['match']
515+
call ale#references#SetMap({3: { 'show_contents': 0, 'open_in': 'quickfix' }} )
516+
517+
call ale#references#HandleLSPResponse(
518+
\ 1,
519+
\ {
520+
\ 'id': 3,
521+
\ 'result': [
522+
\ {
523+
\ 'uri': ale#path#ToFileURI('dummy'),
524+
\ 'range': {
525+
\ 'start': {'line': 0, 'character': 6},
526+
\ },
527+
\ },
528+
\ {
529+
\ 'uri': ale#path#ToFileURI('dummy'),
530+
\ 'range': {
531+
\ 'start': {'line': 2, 'character': 1},
532+
\ },
533+
\ },
534+
\ ],
535+
\ }
536+
\)
537+
AssertEqual
538+
\ 2,
539+
\ len(getqflist())
540+
541+
AssertEqual '', getqflist()[0]['text']
542+
AssertEqual '', getqflist()[1]['text']
543+
544+
Execute(LSP reference responses should respect the global configuration):
545+
let g:ale_references_show_contents = 0
546+
call ale#references#SetMap({3: {}})
547+
548+
let tempfile = tempname()
549+
let contents = ['line1 sometext', 'line2 othertext', 'line3 moretext']
550+
call writefile(contents, tempfile)
551+
552+
call ale#references#HandleLSPResponse(
553+
\ 1,
554+
\ {
555+
\ 'id': 3,
556+
\ 'result': [
557+
\ {
558+
\ 'uri': ale#path#ToFileURI(tempfile),
559+
\ 'range': {
560+
\ 'start': {'line': 0, 'character': 6},
561+
\ },
562+
\ },
563+
\ {
564+
\ 'uri': ale#path#ToFileURI(tempfile),
565+
\ 'range': {
566+
\ 'start': {'line': 2, 'character': 1},
567+
\ },
568+
\ },
569+
\ ],
570+
\ }
571+
\)
572+
AssertEqual
573+
\ 2,
574+
\ len(g:item_list)
575+
576+
AssertEqual '', g:item_list[0]['match']
577+
AssertEqual '', g:item_list[1]['match']
578+
418579
Execute(Preview windows should not be opened for empty LSP reference responses):
419580
call ale#references#SetMap({3: {}})
420581
call ale#references#HandleLSPResponse(1, {'id': 3, 'result': []})

0 commit comments

Comments
 (0)