page-tree: collectAllIds/collectBranchIds (Expand/Collapse all) без тестов #73
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Найдено в multi-aspect code review всех изменений с коммита
053a9c0d(ветка develop).Грань: test-coverage · Severity: warning
Где:
apps/client/src/features/page/tree/utils/utils.ts:228-256Проблема
Две новые чистые функции реализуют Collapse all (collectAllIds) и Expand all (collectBranchIds). У каждой реальное ветвление: collectBranchIds добавляет/рекурсит только при truthy n.children?.length (листья исключены), collectAllIds добавляет все узлы и рекурсит только в непустые children. utils.test.ts проверяет только buildTree; ни одна ветка не покрыта. Граница «лист исключается / ветка включается» и «пустой vs отсутствующий children» — классическое место off-by-one. В проекте уже принято юнит-тестировать такие хелперы (tree-model.test.ts, utils.test.ts).
Предлагаемый фикс
Добавить тесты в utils.test.ts: многоуровневое дерево; collectAllIds возвращает все id (roots+branches+leaves), collectBranchIds — только id узлов с непустыми children; включить лист с children:[] и лист без ключа children, чтобы зафиксировать границу.