- пять из урожая change 2026-08-11-fix-http-handler-tests, тег review-2026-08-11; утечка имени файла в журнал поставлена первой строкой очереди - опечатка transcibe дописана в json-api-for-spa: текст ошибки — часть необратимого контракта, и в одиночку он не правится
2.8 KiB
2.8 KiB
🧹 Покрыть тестами разбор вывода ffprobe
- Тип: chore
- Категория: Очередь
- Зачем: Проверки приёма перестали звать настоящий ffprobe 2026-08-11, а своего теста у адаптера метаданных нет: разбор JSON и отличие «программы нет в PATH» от «обработка отказала» не проверяет ничто.
- Теги: review-2026-08-11
До 2026-08-11 настоящий ffprobe звали проверки приёма — правда, звали так, что
он всегда отказывал, то есть проверяли отказ и выдавали его за успех. Теперь
приём получает длительность от подставного источника, а у самого адаптера своего
теста нет: разбор JSON, перевод длительности из строки в секунды и отличие
«программы нет в PATH» от «обработка отказала» не проверяет ничто.
Решение и его цена записаны в ADR-2026-08-11-stub-adapters-in-tests; дыра названа в review.md, «Перестали проверять сознательно».
Затрагивает
internal/adapter/metaviewer/ffmpeg— новый тестовый файл.
Критерии приёмки
- Разбор годного вывода
ffprobeпроверен без запуска самой программы: длина в секундах получается из заданного JSON. Оракул — тест на подставленном выводе. - Отсутствие программы в
PATHдаёт отличимую ошибку, а не ту же, что отказ обработки. Оракул — прогон сPATH, не содержащимffprobe: текст ошибки называет именно ненайденную программу. - Вырожденный вывод — пустой, без поля длительности, с нечисловой строкой — не превращается в нулевую длительность молча. Оракул — тест на трёх таких входах, каждый даёт ошибку.
Рамки
Проверка на настоящей записи здесь не заводится: она требует файла в
репозитории, а testdata в проекте нет. Если такая проверка нужна, это своё
решение и своя задача.