Files
transcriber/tasks/items/metaviewer-adapter-tests.md
T
av 8739b18a9f tasks: очередь расставлена от базы к деталям
- порядок беклога и роадмапа назначен слоями: проверки, которым можно
  верить → долги входа → владелец записи и контракт API → конвейер под
  тестами → приложение и возможности поверх; у каждого движения записана
  причина;
- заведены восемь задач под пункты «Завершения», которых не закрывала ни
  одна запись, — цель any-audio-source была без задач вовсе;
- у четырёх задач сняты критерии, требовавшие того, что делает задача ниже
  по очереди; исправлены ссылки на несуществующий repo/sqlite и на
  отменённую разведку об очереди.
2026-08-12 20:48:53 +03:00

40 lines
2.9 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 не проверяет ничто, а приём видео его расширяет.
- **Зачем:** Проверки приёма перестали звать настоящий 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` в проекте нет. Если такая проверка нужна, это своё
решение и своя задача.