4.6 KiB
4.6 KiB
Аудит и план доработок
1. Невыполненный пункт todo.md
✅ Выполнено
Добавлен vscode.workspace.onDidChangeConfiguration в extension.ts — при
изменении xboctukFlow.* настроек пересоздаются file watchers и вызывается
tree.refresh().
2. Рефакторинг: слияние frontmatterBlock.ts → frontmatterFields.ts
✅ Выполнено
frontmatterBlock.tsудалён, логика перенесена вfrontmatterFields.ts- Обновлены импорты в
validateFrontmatter.tsиparseTaskTags.ts - Написаны 7 unit-тестов на
extractFrontmatterBlock
3. Тесты на edge cases
✅ Выполнено — добавлено 14 тестов + интеграционный тест.
| Модуль | Что добавили |
|---|---|
dashboard/sortTasks |
пустой массив, одинаковые created, invalid даты |
kanban/buildKanbanBoard |
одинаковые updated (стабильность) |
storage/FsTaskRepository |
кириллица, title 80 символов, спецсимволы в тегах, slug для Fix___bug |
dashboard/applyRawTaskContent |
разный порядок полей, пустое body |
dashboard/buildDashboardView |
пустой массив |
dashboard/groupTasks |
неизвестный статус/приоритет |
dashboard/filterTasks |
пустой массив |
FsTaskRepository |
интеграционный: create → file → parse → сверка |
4. rename: TODO → OPEN + UNKNOWN
✅ Выполнено
TaskStatus.TODO→TaskStatus.OPEN(wire:"open")- Добавлены
TaskStatus.UNKNOWNиTaskPriority.UNKNOWN - Невалидные статусы/приоритеты при парсинге →
UNKNOWN(решает проблему невидимых задач в groupTasks) normalizeTaskStatus/normalizeTaskPriorityвutils/markdown.tsdefaultHidden: trueдля UNKNOWN (как backlog/cancelled)
5. Хрупкие тесты
✅ Выполнено
Snapshot-тесты
- Оставлены
toMatchSnapshot()как есть (сознательное решение — обновляются через--update).
_unsafeUnwrap() → безопасный паттерн
addProjectTag.test.ts— 3 местаparseProjectConfig.test.ts— 2 местаserializeProjectConfig.test.ts— 2 места
Все заменены на isOk()/isErr() + ранний return.
6. Untested-модули
✅ Выполнено
config.test.ts — 4 теста:
getConfigSectionвозвращает непустую строкуgetSettingDefaultдля обоих ключей- ошибка при missing key
taskFile.test.ts — 6 тестов:
- extension и language id — непустые строки
MAX_TASK_TITLE_LENGTH— положительное числоisTaskFileName— корректно проверяет расширение
7. Сырые строки → константы в тестах
✅ Выполнено
Во всех тестовых файлах "open"/"done"/"in-progress"/"unknown" и
приоритеты заменены на TaskStatus.* / TaskPriority.*. Serialization-ассерты
(toContain("status: open")) и YAML-фикстуры оставлены как есть.
Текущий статус
- Рефакторинг —
frontmatterBlock.ts→frontmatterFields.ts+ тесты - Edge case тесты — 14 тестов + интеграционный
- rename TODO → OPEN + UNKNOWN
- Хрупкие тесты — snapshot оставлены,
_unsafeUnwrapзаменён - config.ts + taskFile.ts — unit-тесты
- todo.md — refresh боковой панели
- Сырые строки → константы в тестах