public-share: инструмент listSharePages полностью без тестов #86

Closed
opened 2026-06-21 02:33:13 +03:00 by Ghost · 0 comments

Найдено в multi-aspect code review всех изменений с коммита 053a9c0d (ветка develop).

Грань: test-coverage · Severity: warning
Где: apps/server/src/core/ai-chat/tools/public-share-chat-tools.service.ts:157-211

Проблема
listSharePages содержит нетривиальную логику, ни одна ветка не покрыта: детект rootInTree, fallback для single-page share с unshift корня, дедуп по id с сохранением первого titled-вхождения, catch-all возврата [] при сбое getShareTree. Инструмент перечисляет id/title страниц анонимному вызывающему, поэтому scope (только страницы этой шары) и форма dedup/fallback важны. Регрессия в fallback (пропуск корня single-page шары или дубликат) не будет поймана.

Предлагаемый фикс
Тесты: (a) includeSubPages-шара с корнем в pageTree — страницы перечислены и дедуплицированы; (b) single-page шара без корня в pageTree — корень добавлен через pageRepo.findById; (c) getShareTree кидает — возврат []. Проверить id/title и вызов getShareTree с (shareId, workspaceId).

Найдено в multi-aspect code review всех изменений с коммита `053a9c0d` (ветка develop). **Грань:** test-coverage · **Severity:** warning **Где:** `apps/server/src/core/ai-chat/tools/public-share-chat-tools.service.ts:157-211` **Проблема** listSharePages содержит нетривиальную логику, ни одна ветка не покрыта: детект rootInTree, fallback для single-page share с unshift корня, дедуп по id с сохранением первого titled-вхождения, catch-all возврата [] при сбое getShareTree. Инструмент перечисляет id/title страниц анонимному вызывающему, поэтому scope (только страницы этой шары) и форма dedup/fallback важны. Регрессия в fallback (пропуск корня single-page шары или дубликат) не будет поймана. **Предлагаемый фикс** Тесты: (a) includeSubPages-шара с корнем в pageTree — страницы перечислены и дедуплицированы; (b) single-page шара без корня в pageTree — корень добавлен через pageRepo.findById; (c) getShareTree кидает — возврат []. Проверить id/title и вызов getShareTree с (shareId, workspaceId).
Ghost closed this issue 2026-06-21 04:15:11 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: vvzvlad/gitmost#86