Before: Save g:ale_go_go111module call ale#assert#SetUpLinterTest('go', 'bingo') After: Restore if isdirectory(g:dir . '/.git') call delete(g:dir . '/.git', 'd') endif unlet! b:ale_completion_enabled unlet! b:ale_go_go111module call ale#assert#TearDownLinterTest() Execute(should set correct defaults): AssertLinter 'bingo', ale#Escape('bingo') . ' --mode stdio' Execute(should configure bingo callback executable): let b:ale_go_bingo_executable = 'boo' let b:ale_go_bingo_options = '' AssertLinter 'boo', ale#Escape('boo') Execute(should set bingo options): call ale#test#SetFilename('../test-files/go/go1/prj1/file.go') " let b:ale_completion_enabled = 1 let b:ale_go_bingo_options = '' AssertLinter 'bingo', \ ale#Escape('bingo') . '' let b:ale_go_bingo_options = '--mode stdio --trace' AssertLinter 'bingo', \ ale#Escape('bingo') . ' --mode stdio --trace' Execute(should support Go environment variables): call ale#test#SetFilename('../test-files/go/go1/prj1/file.go') let b:ale_go_go111module = 'on' AssertLinter 'bingo', \ ale#Env('GO111MODULE', 'on') . ale#Escape('bingo') . ' --mode stdio' Execute(Should return directory for 'go.mod' if found in parent directory): call ale#test#SetFilename('../test-files/go/test.go') AssertLSPProject ale#path#Simplify(g:dir . '/../test-files/go') Execute(Should return nearest directory with '.git' if found in parent directory): call ale#test#SetFilename('test.go') call mkdir(g:dir . '/.git') AssertLSPProject g:dir Execute(Should ignore 'go.mod' and return '.git' dir if modules off): call ale#test#SetFilename('../test-files/go/test.go') let b:ale_go_go111module = 'off' let b:parent_dir = ale#path#Simplify(g:dir . '/..') let b:git_dir = b:parent_dir . '/.git' if !isdirectory(b:git_dir) call mkdir(b:git_dir) endif AssertLSPProject b:parent_dir call delete(b:git_dir, 'd') unlet! b:parent_dir unlet! b:git_dir