Before: call ale#assert#SetUpLinterTest('terraform', 'terraform_ls') After: if isdirectory(g:dir . '/.terraform') call delete(g:dir . '/.terraform', 'd') endif unlet! b:ale_terraform_terraform_executable unlet! b:ale_terraform_ls_executable unlet! b:ale_terraform_ls_options call ale#assert#TearDownLinterTest() Execute(Should send correct LSP language): AssertLSPLanguage 'terraform' Execute(Should load default executable): AssertLinter 'terraform-ls', \ ale#Escape('terraform-ls') . ' serve' Execute(Should configure custom executable): let b:ale_terraform_ls_executable = 'foo' AssertLinter 'foo', \ ale#Escape('foo') . ' serve' Execute(Should ignore non-absolute custom terraform executable): let b:ale_terraform_terraform_executable = 'terraform' AssertLinter 'terraform-ls', \ ale#Escape('terraform-ls') . ' serve' Execute(Should set absolute custom terraform executable): let b:ale_terraform_terraform_executable = '/bin/terraform' AssertLinter 'terraform-ls', \ ale#Escape('terraform-ls') . ' serve -tf-exec /bin/terraform' Execute(Should set custom options): let b:ale_terraform_ls_options = '--bar' AssertLinter 'terraform-ls', \ ale#Escape('terraform-ls') . ' serve --bar' Execute(Should return current directory if it contains .terraform directory): call mkdir(g:dir . '/.terraform') AssertLSPProject g:dir Execute(Should return nearest directory with .terraform if found in parent directory): call ale#test#SetFilename('../terraform_files/main.tf') let b:parent_dir = ale#path#Simplify(g:dir . '/..') let b:tf_dir = b:parent_dir . '/.terraform' if !isdirectory(b:tf_dir) call mkdir(b:tf_dir) endif AssertLSPProject b:parent_dir call delete(b:tf_dir, 'd') unlet!b:parent_dir unlet!b:tf_dir