
Before:
  call ale#assert#SetUpLinterTest('ruby', 'sorbet')
  call ale#test#SetFilename('dummy.rb')

  let g:ale_ruby_sorbet_executable = 'srb'
  let g:ale_ruby_sorbet_options = ''
  let g:ale_ruby_sorbet_enable_watchman = 0
  let g:ale_ruby_sorbet_initialization_options = { 'highlightUntyped': v:false }

After:
  call ale#assert#TearDownLinterTest()

Execute(Executable should default to srb):
  AssertLinter 'srb', ale#Escape('srb')
  \   . ' tc --lsp --disable-watchman'

Execute(Able to enable watchman):
  let g:ale_ruby_sorbet_enable_watchman = 1

  AssertLinter 'srb', ale#Escape('srb')
  \   . ' tc --lsp'

Execute(Should be able to set a custom executable):
  let g:ale_ruby_sorbet_executable = 'bin/srb'

  AssertLinter 'bin/srb' , ale#Escape('bin/srb')
  \   . ' tc --lsp --disable-watchman'

Execute(Setting bundle appends 'exec srb tc'):
  let g:ale_ruby_sorbet_executable = 'path to/bundle'

  AssertLinter 'path to/bundle', ale#Escape('path to/bundle')
  \   . ' exec srb'
  \   . ' tc --lsp --disable-watchman'

Execute(Should use predetermined initialization_options by default):
  AssertLSPOptions { 'highlightUntyped': v:false }

Execute(Should be able to set custom initialization_options):
  let g:ale_ruby_sorbet_initialization_options = {'enableTypedFalse': v:true}

  AssertLSPOptions {'enableTypedFalse': v:true}
