Before:
  call ale#assert#SetUpLinterTest('less', 'lessc')
  call ale#test#SetFilename('testfile.less')

  unlet! b:executable

After:
  unlet! b:executable

  call ale#assert#TearDownLinterTest()

Execute(node_modules directories should be discovered):
  call ale#test#SetFilename('../test-files/lessc/nested/testfile.less')

  let b:executable = ale#path#Simplify(
  \   g:dir
  \   . '/../test-files/lessc/node_modules/.bin/lessc'
  \)

  AssertLinter b:executable, ale#Escape(b:executable)
  \ . ' --no-color --lint'
  \ . ' --include-path='
  \ . ale#Escape(ale#path#Simplify(g:dir . '/../test-files/lessc/nested'))
  \ . ' -'

Execute(The global override should work):
  let b:ale_less_lessc_executable = 'foobar'
  let b:ale_less_lessc_use_global = 1

  call ale#test#SetFilename('../test-files/lessc/nested/testfile.less')

  AssertLinter 'foobar', ale#Escape('foobar')
  \ . ' --no-color --lint'
  \ . ' --include-path='
  \ . ale#Escape(ale#path#Simplify(g:dir . '/../test-files/lessc/nested'))
  \ . ' -'

Execute(Extra options should be configurable):
  let b:ale_less_lessc_options = '--whatever'

  AssertLinter 'lessc', ale#Escape('lessc')
  \ . ' --no-color --lint'
  \ . ' --include-path='
  \ . ale#Escape(ale#path#Simplify(g:dir))
  \ . ' --whatever'
  \ . ' -'