- storage-without-pocketbase закрыта как реализованная: приёмка сошлась по всем
пяти критериям записи и по двенадцати приёмочным свойствам рубрики ревью
дизайна, работа лежит коммитом c9b7765
- урожай триажа ревью развёрнут в одиннадцать записей с тегом партии
review-2026-08-23 и расставлен по зависимости, а не в конец списка
- находка про признак живости воркера слита в stalled-pipeline-metric: у неё та
же причина — вставший конвейер неотличим от простоя
40 lines
3.0 KiB
Markdown
40 lines
3.0 KiB
Markdown
# 🧹 Вынести тело подкоманды resume из main-пакета и покрыть тестом
|
|
|
|
- **Тип:** chore
|
|
- **Категория:** Очередь — Тот же пакет оснастки: после того как в cmd/devtools осядет подкоманда подъёма, тела подкоманд выносятся из main-пакета разом
|
|
- **Зачем:** go test ./cmd/... отвечает no test files: подкоманда возврата записи в работу не проверена ничем, а тест на неё пришлось бы писать, повторяя её тело руками.
|
|
- **Теги:** review-2026-08-23
|
|
|
|
`go test ./cmd/...` отвечает `no test files`. Подкомандой `resume` владелец
|
|
возвращает остановленную запись в работу, пока этого не делают экраны, — и
|
|
проверяет её только человек руками.
|
|
|
|
Тело подкоманды живёт в `main`-пакете и завязано на `log.Fatalf`: тест на неё
|
|
пришлось бы писать, повторяя это тело у себя, — то есть проверять копию, а не
|
|
предмет. Починка — вынести тело в вызываемую функцию, возвращающую ошибку.
|
|
|
|
Нашёл проход `review-specs` (S4) ревью change
|
|
`2026-08-23-storage-without-pocketbase`.
|
|
|
|
## Затрагивает
|
|
|
|
- `cmd/devtools/resume.go` — тело подкоманды и его выход через `log.Fatalf`;
|
|
- `cmd/devtools/main.go` — разбор доводов и выбор подкоманды;
|
|
- сборка тестов `cmd/devtools`, которой сегодня нет.
|
|
|
|
## Критерии приёмки
|
|
|
|
- Тело подкоманды вызывается из теста. **Оракул:** `go test ./cmd/...` больше
|
|
не отвечает `no test files`, и тест зовёт функцию, а не повторяет её шаги.
|
|
- Остановленная запись возвращается в работу. **Оракул:** тест на временной базе
|
|
— после вызова у записи снят признак остановки, счётчик отказов обнулён, а в
|
|
журнале событий записи стоит строка о возврате.
|
|
- Отказ виден кодом возврата. **Оракул:** тест — несуществующий идентификатор
|
|
даёт ошибку из функции, а команда — ненулевой код.
|
|
|
|
## Рамки
|
|
|
|
Подкоманду не переименовываем и доводов ей не добавляем: правится место тела, а
|
|
не её договор с человеком. Боевой каталог данных не трогать — тест идёт по
|
|
`t.TempDir()`.
|