Files
transcriber/tasks/items/metaviewer-adapter-tests.md
T
av 2333e80633 tasks: заведены шесть задач из урожая ревью и переименования образца конфига
- пять из урожая change 2026-08-11-fix-http-handler-tests, тег review-2026-08-11;
  утечка имени файла в журнал поставлена первой строкой очереди
- опечатка transcibe дописана в json-api-for-spa: текст ошибки — часть
  необратимого контракта, и в одиночку он не правится
2026-08-11 08:59:45 +03:00

40 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🧹 Покрыть тестами разбор вывода 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](../../docs/adr/ADR-2026-08-11-stub-adapters-in-tests.md);
дыра названа в [review.md](../../docs/review.md), «Перестали проверять
сознательно».
## Затрагивает
- `internal/adapter/metaviewer/ffmpeg` — новый тестовый файл.
## Критерии приёмки
- Разбор годного вывода `ffprobe` проверен без запуска самой программы: длина в
секундах получается из заданного JSON. Оракул — тест на подставленном выводе.
- Отсутствие программы в `PATH` даёт отличимую ошибку, а не ту же, что отказ
обработки. Оракул — прогон с `PATH`, не содержащим `ffprobe`: текст ошибки
называет именно ненайденную программу.
- Вырожденный вывод — пустой, без поля длительности, с нечисловой строкой — не
превращается в нулевую длительность молча. Оракул — тест на трёх таких входах,
каждый даёт ошибку.
## Рамки
Проверка на настоящей записи здесь не заводится: она требует файла в
репозитории, а `testdata` в проекте нет. Если такая проверка нужна, это своё
решение и своя задача.