Before:
  call ale#assert#SetUpLinterTest('ocamlinterface', 'ocamllsp')

  Save &filetype
  let &filetype = 'ocamlinterface'

After:
  call ale#assert#TearDownLinterTest()

Execute(The language string should be correct):
  AssertLSPLanguage 'ocaml.interface'

Execute(The project root should be detected correctly):
  AssertLSPProject ''

  call ale#test#SetFilename('../test-files/ocamllsp/file.ml')

  AssertLSPProject ale#path#Simplify(g:dir . '/../test-files/ocamllsp')

Execute(The executable should be run using opam exec by default):
  call ale#test#SetFilename('../test-files/ocamllsp/file.ml')

  AssertLinter 'ocamllsp', 'opam config exec -- ocamllsp'

Execute(The executable should be run directly if use_opam flag is disabled):
  let g:ale_ocaml_ocamllsp_use_opam = 0
  call ale#test#SetFilename('../test-files/ocamllsp/file.ml')

  AssertLinter 'ocamllsp', 'ocamllsp'