test: add job tests for BatchContentGeneration and ProcessContentTask (#10)
- tests/Feature/Jobs/BatchContentGenerationTest.php
- job configuration (timeout, priority, batch size, ShouldQueue)
- queue assignment to ai-batch with Queue::fake()
- tag generation (batch-generation + priority:*)
- job chaining: ProcessContentTask dispatch per task
- handle() empty-collection path (documented alias-mock limitation)
- tests/Feature/Jobs/ProcessContentTaskTest.php
- job configuration (tries, backoff, timeout, ShouldQueue)
- failed() marks task failed with exception message
- handle() early-exit: missing prompt
- handle() early-exit: denied entitlement
- handle() early-exit: unavailable provider
- handle() success without workspace (no usage recording)
- handle() success with workspace (entitlement check + usage recording)
- processOutput() stub behaviour (target absent/present, no crash)
- variable interpolation: strings, arrays, unmatched placeholders, empty data
- retry logic: re-dispatch, failed() called on unhandled exception
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>