The shouldDeleteMaterial tests had a mockCleaner that reimplemented the production logic inline, meaning bugs in the real code would never be caught. Now uses an actual CleanerService instance instead. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>