[cleanup][page-templates] Мёртвые isPageEmbedCycle/isPageEmbedTooDeep — удалить или переиспользовать в decideEmbedState #71
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?
Техдолг, выявленный при ревью резолва merge-конфликта PR #45 (мерж в develop).
Суть
После того как при мерже #45 каноническим guard остался
decideEmbedState(develop/#49), предикаты из #45 стали мёртвым в проде кодом: экспортированы и покрыты тестами, но в продакшене не вызываются — их логикуdecideEmbedStateинлайнит у себя.isPageEmbedCycle—apps/client/src/features/editor/components/page-embed/page-embed-ancestry-context.tsx:61isPageEmbedTooDeep—apps/client/src/features/editor/components/page-embed/page-embed-ancestry-context.tsx:74page-embed-ancestry-context.test.tsx(прод-вызовов нет).apps/client/src/features/editor/components/page-embed/decide-embed-state.ts:47-50:chain.includes(sourcePageId) || hostPageId === sourcePageIdchain.length >= PAGE_EMBED_MAX_DEPTHРешение: удалить мёртвый код
Логика тривиальна и стабильна, прод-поведение уже полностью покрыто
decide-embed-state.test.ts(cycle через chain + self-embed/host, too_deep, порядок «cycle важнее too_deep»). Держать вторую копию — лишний риск дрейфа.Что сделать
isPageEmbedCycleиisPageEmbedTooDeepизpage-embed-ancestry-context.tsx(стр. 61 и 74).describe-блока изpage-embed-ancestry-context.test.tsx(describe("isPageEmbedCycle"...)иdescribe("isPageEmbedTooDeep"...)).export const PAGE_EMBED_MAX_DEPTH— его импортируетdecideEmbedState.pnpm -r test.Вариант «переиспользовать предикаты в decideEmbedState» рассмотрен и отклонён: логика — два однострочника, отдельные именованные предикаты тут оверинжиниринг. (Вернуться к нему имеет смысл только если cycle/depth-логика будет усложняться.)
Severity: low (cleanup). Поведение не меняется.