Before:
  call ale#assert#SetUpFixerTest('erlang', 'erlfmt')

After:
  unlet! b:root

  call ale#assert#TearDownFixerTest()

Execute(The local erlfmt executable should be used by default):
  " Not sure if this is a good default though.  It seems to imply
  " that the executable is committed to the repository.

  let b:root = '../test-files/erlang/app_with_erlfmt'

  call ale#test#SetFilename(b:root . '/src/app.erl')
  AssertFixer {
  \ 'command': ale#Escape(ale#test#GetFilename(b:root . '/erlfmt')) . ' -',
  \}

Execute(The global erlfmt executable should be configurable):
  let b:root = '../test-files/erlang/app_with_erlfmt'

  let b:ale_erlang_erlfmt_executable = '/path/to/erlfmt'
  let b:ale_erlang_erlfmt_use_global = 1

  call ale#test#SetFilename(b:root . '/src/app.erl')
  AssertFixer {'command': ale#Escape('/path/to/erlfmt') . ' -'}

Execute(The erlfmt command should handle empty options):
  AssertFixer {'command': ale#Escape('erlfmt') . ' -'}

Execute(The erlfmt command should handle custom options):
  let b:ale_erlang_erlfmt_options = '--insert-pragma'
  AssertFixer {'command': ale#Escape('erlfmt') . ' --insert-pragma -'}
