By: Michael Lynch <git@mtlynch.io>
Consolidate media service tests into table-driven tests Merge the three near-identical publish tests (image, animated image, video) into one TestServicePublishesMedia table that selects the publish method per row via a method expression. Drop error-path rows that repeated identical shared logic across media types: all three publish methods funnel into the same unexported publish() and classifyProcessingError(), so each error path now has one row (plus the video-specific too-long translation). Merge the three Delete tests into one TestServiceDelete table covering file-variant deletion per media type, not-found error translation, and the no-purge-on-file-deletion-failure guarantee. The store-sentinel leak check now runs as a general assertion on every row. Also simplify mockProcessor to a single processErr field and remove its calledProcess* fields, which no test asserted. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>