Massively reduce the amount of code needed for linter tests

This commit is contained in:
w0rp
2018-07-15 18:24:53 +01:00
parent 5155a35a80
commit a42999a639
138 changed files with 1447 additions and 3017 deletions

View File

@@ -1,52 +1,36 @@
Before:
Save g:ale_go_gobuild_options
unlet! g:ale_go_gobuild_options
call ale#assert#SetUpLinterTest('go', 'gobuild')
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()
WithChainResults ['/foo/bar', '/foo/baz']
After:
Restore
unlet! g:env_prefix
call ale#assert#TearDownLinterTest()
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']),
Execute(The default commands should be correct):
AssertLinter 'go', [
\ 'go env GOPATH GOROOT',
\ 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(''), []),
AssertLinter 'go', [
\ '',
\ 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']),
AssertLinter 'go', [
\ 'go env GOPATH GOROOT',
\ g:env_prefix . 'cd ' . ale#Escape(expand('%:p:h')) . ' && '
\ . 'go test --foo-bar -c -o /dev/null ./'
\]