page-templates: catch-ветка lookupTemplate (fail-closed в not_found при битом контенте) без тестов #81

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

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

Грань: test-coverage · Severity: warning
Где: apps/server/src/core/page/transclusion/transclusion.service.ts:418

Проблема
Catch существует ради инварианта безопасности: если срез comment-марок падает, страница должна вернуться как not_found, а не утечь контент с исходными comment-марками. Оба lookup-спека подают только корректный контент, поэтому ветка, возвращающая not_found для доступной страницы, не исполняется. Будущее изменение, возвращающее при ошибке парсинга сырой page.content (с comment-марками), не будет поймано тестом.

Предлагаемый фикс
Тест lookupTemplate, где контент доступной страницы заставляет getProsemirrorContent/jsonToNode бросить (битый pmJson); проверить, что элемент = { sourcePageId, status: 'not_found' } и в результате нет comment-марки.

Найдено в multi-aspect code review всех изменений с коммита `053a9c0d` (ветка develop). **Грань:** test-coverage · **Severity:** warning **Где:** `apps/server/src/core/page/transclusion/transclusion.service.ts:418` **Проблема** Catch существует ради инварианта безопасности: если срез comment-марок падает, страница должна вернуться как not_found, а не утечь контент с исходными comment-марками. Оба lookup-спека подают только корректный контент, поэтому ветка, возвращающая not_found для доступной страницы, не исполняется. Будущее изменение, возвращающее при ошибке парсинга сырой page.content (с comment-марками), не будет поймано тестом. **Предлагаемый фикс** Тест lookupTemplate, где контент доступной страницы заставляет getProsemirrorContent/jsonToNode бросить (битый pmJson); проверить, что элемент = { sourcePageId, status: 'not_found' } и в результате нет comment-марки.
Ghost closed this issue 2026-06-21 03:02:12 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: vvzvlad/gitmost#81