Before:
  call ale#assert#SetUpLinterTest('typescript', 'xo')
  call ale#test#SetFilename('testfile.tsx')
  unlet! b:executable

  set filetype=typescriptreact
  runtime autoload/ale/handlers/xo.vim

After:
  call ale#assert#TearDownLinterTest()

Execute(The XO executable should be called):
  AssertLinter 'xo', ale#Escape('xo') . ' --reporter json --stdin --stdin-filename %s'

Execute(The XO executable should be configurable):
  let b:ale_typescript_xo_executable = 'foobar'

  AssertLinter 'foobar', ale#Escape('foobar') . ' --reporter json --stdin --stdin-filename %s'

Execute(The XO options should be configurable):
  let b:ale_typescript_xo_options = '--wat'

  AssertLinter 'xo', ale#Escape('xo') . ' --wat --reporter json --stdin --stdin-filename %s'
