ale/test/command_callback/test_gobuild_command_callba...

53 lines
1.6 KiB
Plaintext

Before:
Save g:ale_go_gobuild_options
unlet! g:ale_go_gobuild_options
let g:env_prefix = has('win32')
\ ? 'set GOPATH=' . ale#Escape('/foo/bar') . ' && '
\ : 'GOPATH=' . ale#Escape('/foo/bar') . ' '
runtime ale_linters/go/gobuild.vim
call ale#test#SetDirectory('/testplugin/test/command_callback')
call ale_linters#go#gobuild#ResetEnv()
After:
Restore
unlet! g:env_prefix
call ale#linter#Reset()
call ale#test#RestoreDirectory()
Execute(The default gobuild command should be correct):
AssertEqual
\ ale_linters#go#gobuild#GetCommand(bufnr(''), ['/foo/bar', '/foo/baz']),
\ g:env_prefix . 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
\ . 'go test -c -o /dev/null ./'
Execute(The command for getting GOPATH should be correct):
AssertEqual ale_linters#go#gobuild#GoEnv(bufnr('')), 'go env GOPATH GOROOT'
call ale_linters#go#gobuild#GetCommand(bufnr(''), ['/foo/bar', '/foo/baz'])
" We shouldn't run `go env` many times after we've got it.
AssertEqual ale_linters#go#gobuild#GoEnv(bufnr('')), ''
Execute(The GOPATH output should be used after it has been read once):
call ale_linters#go#gobuild#GetCommand(bufnr(''), ['/foo/bar', '/foo/baz'])
AssertEqual
\ ale_linters#go#gobuild#GetCommand(bufnr(''), []),
\ g:env_prefix . 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
\ . 'go test -c -o /dev/null ./'
Execute(Extra options should be supported):
let g:ale_go_gobuild_options = '--foo-bar'
AssertEqual
\ ale_linters#go#gobuild#GetCommand(bufnr(''), ['/foo/bar', '/foo/baz']),
\ g:env_prefix . 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
\ . 'go test --foo-bar -c -o /dev/null ./'