#1891 Fix the go-langserver tests

This commit is contained in:
w0rp 2018-09-06 17:05:05 +01:00
parent f1d5bcbf98
commit 7086769289
No known key found for this signature in database
GPG Key ID: 0FC1ECAA8C81CD83
2 changed files with 29 additions and 12 deletions

View File

@ -4,7 +4,7 @@
call ale#Set('go_langserver_executable', 'go-langserver')
call ale#Set('go_langserver_options', '')
function! ale_linters#go#golangserver#GetCommand(buffer) abort
function! ale_linters#go#langserver#GetCommand(buffer) abort
let l:executable = [ale#Escape(ale#Var(a:buffer, 'go_langserver_executable'))]
let l:options = ale#Var(a:buffer, 'go_langserver_options')
let l:options = substitute(l:options, '-gocodecompletion', '', 'g')
@ -23,6 +23,6 @@ call ale#linter#Define('go', {
\ 'name': 'golangserver',
\ 'lsp': 'stdio',
\ 'executable_callback': ale#VarFunc('go_langserver_executable'),
\ 'command_callback': 'ale_linters#go#golangserver#GetCommand',
\ 'command_callback': 'ale_linters#go#langserver#GetCommand',
\ 'project_root_callback': 'ale#go#FindProjectRoot',
\})

View File

@ -1,13 +1,21 @@
Before:
Save $GOPATH
call ale#assert#SetUpLinterTest('go', 'golangserver')
let sep = has('win32') ? ';' : ':'
let $GOPATH=ale#path#Simplify(g:dir . '/go_paths/go1')
\ . sep
\ . ale#path#Simplify(g:dir . '/go_paths/go2')
Save g:ale_completion_enabled
let g:ale_completion_enabled = 0
let g:sep = has('win32') ? ';' : ':'
call ale#assert#SetUpLinterTest('go', 'langserver')
let $GOPATH = ale#path#Simplify(g:dir . '/go_paths/go1')
\ . g:sep
\ . ale#path#Simplify(g:dir . '/go_paths/go2')
After:
Restore
unlet! b:ale_completion_enabled
unlet! g:sep
call ale#assert#TearDownLinterTest()
Execute(should set correct defaults):
@ -15,36 +23,45 @@ Execute(should set correct defaults):
Execute(should configure go-langserver callback executable):
let b:ale_go_langserver_executable = 'boo'
AssertLinter 'boo', ale#Escape('boo')
unlet b:ale_go_langserver_executable
Execute(should set go-langserver options):
call ale#test#SetFilename('go_paths/go1/prj1/file.go')
let b:ale_completion_enabled = 1
let b:ale_go_langserver_options = ''
AssertEqual ale_linters#go#golangserver#GetCommand(bufnr('%')), ale#Escape('go-langserver') . ' -gocodecompletion'
AssertLinter 'go-langserver',
\ ale#Escape('go-langserver') . ' -gocodecompletion'
let b:ale_go_langserver_options = '-trace'
AssertEqual ale_linters#go#golangserver#GetCommand(bufnr('%')), ale#Escape('go-langserver') . ' -gocodecompletion -trace'
AssertLinter 'go-langserver',
\ ale#Escape('go-langserver') . ' -gocodecompletion -trace'
Execute(should ignore go-langserver -gocodecompletion option):
call ale#test#SetFilename('go_paths/go1/prj1/file.go')
let b:ale_go_langserver_options = '-trace -gocodecompletion'
let b:ale_completion_enabled = 1
AssertEqual ale_linters#go#golangserver#GetCommand(bufnr('%')), ale#Escape('go-langserver') . ' -gocodecompletion -trace'
AssertLinter 'go-langserver',
\ ale#Escape('go-langserver') . ' -gocodecompletion -trace'
let b:ale_completion_enabled = 0
AssertEqual ale_linters#go#golangserver#GetCommand(bufnr('%')), ale#Escape('go-langserver') . ' -trace'
AssertLinter 'go-langserver', ale#Escape('go-langserver') . ' -trace'
Execute(should set go-langserver for go app1):
call ale#test#SetFilename('go_paths/go1/prj1/file.go')
AssertLSPLanguage 'go'
AssertLSPOptions {}
AssertLSPProject ale#path#Simplify(g:dir . '/go_paths/go1')
Execute(should set go-langserver for go app2):
call ale#test#SetFilename('go_paths/go2/prj1/file.go')
AssertLSPLanguage 'go'
AssertLSPOptions {}
AssertLSPProject ale#path#Simplify(g:dir . '/go_paths/go2')