Before:
  call ale#assert#SetUpLinterTest('terraform', 'terraform_ls')

After:
  unlet! b:ale_terraform_terraform_executable
  unlet! b:ale_terraform_ls_executable
  unlet! b:ale_terraform_ls_options

  call ale#assert#TearDownLinterTest()

Execute(The terraform-ls language should be correct):
  AssertLSPLanguage 'terraform'

Execute(The default terraform-ls command should be correct):
  AssertLinter 'terraform-ls', ale#Escape('terraform-ls') . ' serve'

Execute(The terrarform-ls executable and options should be configurable):
  let b:ale_terraform_ls_executable = 'foo'
  let b:ale_terraform_ls_options = '--bar'

  AssertLinter 'foo', ale#Escape('foo') . ' serve --bar'

Execute(Should ignore non-absolute path custom terraform executables):
  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 return nearest directory with .terraform if found in parent directory):
  call ale#test#SetFilename('../test-files/terraform/main.tf')

  AssertLSPProject ale#test#GetFilename('../test-files/terraform')
