7332c6ae

By: Michael Lynch <git@mtlynch.io>

Unit test the videoqueue package

Adds a direct test suite for videoqueue, which was previously exercised
only indirectly through the handler integration tests. The new tests
assert the package's core contracts: resume-on-restart, shutdown
cancelling an in-flight transcode and leaving the item processing,
oldest-first queue draining, Enqueue waking an idle worker, idempotent
Shutdown, and the file-retention helpers.

To let the file helpers run against an in-memory filesystem, introduce a
Filesystem seam (interface + LocalFilesystem) modeled on the existing
mediastore.MediaWriter pattern. New() defaults a nil Config.Filesystem to
LocalFilesystem, so production wiring is unchanged and originals still
land on real disk for ffmpeg to read.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

Suite timing

Time to Start Worker time Duration Time to finish
Config 2s 6s 6s 8s
Eval 6s 1m59s 1m59s 2m05s
Build 2m21s 5m33s 3m22s 5m44s
Suite 2s 7m39s 5m41s 5m44s

Timeline

0s1m2m3m4m5m