http: тесты приёма переписаны на подставные адаптеры
- проверки больше не зовут ffprobe и не меняют рабочий каталог процесса; добавлены случаи на отказ чтения метаданных и на отсутствие поля audio - заведена спека intake на приём по HTTP, ADR о подставных адаптерах, запись в журнал ревью о проверке, которая не могла упасть - go test снят из объявленных долгов CLAUDE.md, послабление errcheck для _test.go в .golangci.yml убрано
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
## Why
|
||||
|
||||
Тесты приёма записи по HTTP заведены давно и не проходили ни разу: один просит
|
||||
файл, которого в репозитории нет и по правилам быть не может, остальные скармливают
|
||||
строку «test audio content» настоящему `ffprobe` и ждут успеха. Из-за этого красный
|
||||
`go test` в проекте перестал что-либо значить — настоящий отказ приёма неотличим от
|
||||
привычного шума, и об ошибке в приёме записи мы узнаем не от машины, а от
|
||||
пользователя.
|
||||
|
||||
## What Changes
|
||||
|
||||
- Проверка приёма перестаёт зависеть от внешнего `ffprobe` и от записи, лежащей
|
||||
в репозитории: длительность в тестах даёт подставной источник метаданных.
|
||||
Проверяем свою логику приёма, а не чужую способность разобрать файл.
|
||||
- Появляется проверка отказа: источник метаданных не смог прочитать запись —
|
||||
приём отвечает отказом, а не успехом. Сегодня это поведение не проверено ничем.
|
||||
- Тесты перестают менять рабочий каталог всего процесса: каталог хранения
|
||||
задаётся приёму снаружи, каждому случаю свой временный.
|
||||
- Поведение приёма записывается требованиями: сегодня оно живёт только в коде,
|
||||
и спорить о том, что здесь правильно, не с чем.
|
||||
|
||||
Поведение самого приёма при этом не меняется — меняется только то, чем оно
|
||||
проверяется. Задача про проверки.
|
||||
|
||||
## Capabilities
|
||||
|
||||
### New Capabilities
|
||||
- `intake`: приём записи от внешней программы по HTTP и опрос готовности —
|
||||
что считается принятой записью, что возвращается в ответ и что происходит,
|
||||
когда запись не удалось прочитать. Приём из Telegram эта спека пока не
|
||||
описывает: его не трогает ни одна проверка этой задачи, а требование,
|
||||
написанное без проверки, — предположение.
|
||||
|
||||
### Modified Capabilities
|
||||
|
||||
Нет: спек в проекте ещё не заведено.
|
||||
|
||||
## Impact
|
||||
|
||||
- `internal/controller/http/transcribe_test.go` — переписывается целиком;
|
||||
- сборка сервиса расшифровки в тестах: каталог хранения и источник метаданных
|
||||
подставляются, а не берутся из окружения;
|
||||
- `.golangci.yml` — послабление `errcheck` для тестов снимается, если после
|
||||
правок в тестах не остаётся непроверенных вызовов;
|
||||
- внешних границ, схемы базы, формата файлов на диске и контракта HTTP API
|
||||
изменение не касается.
|
||||
Reference in New Issue
Block a user