Files
transcriber/tasks/items/devtools-resume-testable.md
T
av 75c6f0168a учёт: закрыт переезд хранилища, заведён урожай его ревью
- storage-without-pocketbase закрыта как реализованная: приёмка сошлась по всем
  пяти критериям записи и по двенадцати приёмочным свойствам рубрики ревью
  дизайна, работа лежит коммитом c9b7765
- урожай триажа ревью развёрнут в одиннадцать записей с тегом партии
  review-2026-08-23 и расставлен по зависимости, а не в конец списка
- находка про признак живости воркера слита в stalled-pipeline-metric: у неё та
  же причина — вставший конвейер неотличим от простоя
2026-08-23 08:41:49 +03:00

3.0 KiB

🧹 Вынести тело подкоманды 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().