summaryrefslogtreecommitdiff
path: root/test/linter/test_terraform_lsp.vader
blob: a292fca0c36a578953fbf0042d6e4acff30fbf91 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Before:
  call ale#assert#SetUpLinterTest('terraform', 'terraform_lsp')

After:
  if isdirectory(g:dir . '/.terraform')
    call delete(g:dir . '/.terraform', 'd')
  endif

  unlet! b:ale_terraform_langserver_executable
  unlet! b:ale_terraform_langserver_options

  call ale#assert#TearDownLinterTest()

Execute(Should send correct LSP language):
  AssertLSPLanguage 'terraform'

Execute(Should load default executable):
  AssertLinter 'terraform-lsp', ale#Escape('terraform-lsp')

Execute(Should configure custom executable):
  let b:ale_terraform_langserver_executable = 'foo'
  AssertLinter 'foo', ale#Escape('foo')

Execute(Should set custom options):
  let b:ale_terraform_langserver_options = '--bar'

  AssertLinter 'terraform-lsp',
  \ ale#Escape('terraform-lsp') . ' --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('../test-files/terraform/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