Before:
  Save g:ale_buffer_info

  let g:job_started_success = 0
  let g:ale_run_synchronously = 1

  unlet! b:ale_linted

  function! TestCallback(buffer, output)
    return []
  endfunction

  call ale#linter#PreventLoading('testft')
  call ale#linter#Define('testft', {
  \ 'name': 'testlinter',
  \ 'callback': 'TestCallback',
  \ 'executable': has('win32') ? 'cmd' : 'true',
  \ 'command': 'true',
  \})

After:
  Restore

  let g:ale_run_synchronously = 0

  augroup VaderTest
    autocmd!
  augroup END

  augroup! VaderTest

  unlet! g:job_started_success

  delfunction TestCallback
  call ale#linter#Reset()

Given testft (An empty file):
Execute(Run a lint cycle with an actual job to check for ALEJobStarted):
  augroup VaderTest
    autocmd!
    autocmd User ALEJobStarted let g:job_started_success = 1
  augroup END

  ALELint

  AssertEqual g:job_started_success, 1
