test: cover features since 053a9c0d + repair test tooling
#49
Reference in New Issue
Block a user
Delete Branch "test/feature-coverage"
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?
Что это
Тесты для всех основных фич gitmost, добавленных с коммита
053a9c0d(AI-чат, AI-роли, публичный share-ассистент, MCP per-user auth, HTML-embed, page-templates/embed, realtime-дерево, expand/collapse, AI-settings UI), плюс починка тест-инструментария, без которой часть покрытия была фиктивной.Итог: +~330 тестов, все зелёные — server (Jest) 587, client (Vitest) 185, editor-ext (Vitest) 56, packages/mcp (node:test) 247. Новых падений нет.
Починка тест-инструментария (предусловие)
page-template-access,page-template-lookup,transclusion-unsync-html-embed) не компилировались (TS2554: конструкторTransclusionServiceстал 11-аргументным). Покрытие контроля доступа / утечки контента / strip htmlEmbed на unsync было фиктивным — теперь спеки исполняются.@docmost/editor-extчерезdist/; добавленpretest-хук, собирающий пакет (устаревший dist не содержал экспортовHtmlEmbed/PageEmbed→TS2305)..tsxemail-шаблоны (@docmost/transactional/emails/*): добавленtsxвmoduleFileExtensions, transform-regex расширен до(t|j)sx?.Рефакторы (поведение сохранено, подтверждено code-review)
Извлечение чистых ядер ради дешёвых unit-тестов:
resolveShareAssistantRequest+uiMessageTextLength(public-share controller),decideBasicGate+mapAuthResultToResponse(mcp),buildErrorAssistantRecord(ai-chat), экспортjsonbObject(roles).render-raw-html+shouldExecute/canEdit,decide-embed-state, page-embed picker utils, tree-socket reducers,openBranches/closeIds,isEndpointConfigured/resolveKeyField.buildTreeWithChildrenтеперь трактует orphan (обрезанного правами родителя) как корень, а не падает.Покрытые классы дефектов (примеры)
<div data-type="htmlEmbed">детектируется и снимается (bypass нет).Отложено (нужен тестовый Postgres / HTTP-харнес; помечено в спеках)
repo-уровневые DB-интеграции (изоляция по workspace, jsonb-merge настроек) и E2E про XFF-обход публичного ассистента. Предсуществующие падения DI / lib0-ESM сьютов не трогались — вне scope.
🤖 Generated with Claude Code
053a9c0d+ repair test tooling 90d3fab483Ghost referenced this pull request2026-06-21 02:05:01 +03:00