33 lines
2.7 KiB
Markdown
33 lines
2.7 KiB
Markdown
# Модуль m03-program-store — план разработки
|
||
|
||
> План по алгоритму d-dev (`std1\_rules\d\d-dev.md`), адаптация к
|
||
> сервисному модулю; шлюзы «**Пользователь!**» — d-dev-4. Требования —
|
||
> [module_reqs.md](module_reqs.md).
|
||
|
||
| Шаг d-dev | Состав | Статус |
|
||
|---|---|---|
|
||
| 0. Персистентная подготовка | module_reqs.md, readme.md, SKILL.md | ✅ |
|
||
| 1. Список единиц к реализации | методы ProgramStore — module_reqs разд. 4 (7 методов) | ✅ |
|
||
| 1.3. Утверждение списка | — | **Пользователь!** ✅ (2026-10-18) |
|
||
| 2. Спецификации единиц | `api_specs\` модуля — 2 файла (жизненный цикл 01; чтение 02) | ✅ |
|
||
| 2.4. Утверждение спецификаций | — | **Пользователь!** ✅ (2026-10-18) |
|
||
| 3. Код и тесты | `Server.WatchBody.Core\Programs\ProgramStore.cs` + интеграционные тесты (docker `watchbody-pg`): 19 тестов, все PASS; сборка 0 ошибок | ✅ |
|
||
| 3.4. Утверждение реализации | — | **Пользователь!** ✅ (2026-10-18) |
|
||
| 4. Завершение | сборка и тесты зелёные; критерии приёмки module_reqs разд. 5 проверены | ✅ (2026-10-18: сборка 0 ошибок, тесты Web 44/44 + Core 55/55 PASS на момент закрытия; после З-35 — Core 56/56) |
|
||
|
||
Примечания:
|
||
|
||
- Разработка поштучно: методы сервиса небольшой группой (жизненный
|
||
цикл 1–4, чтение 5–7) — шлюзы 1.3/2.4 можно проходить одной группой.
|
||
- Потребители ProgramStore (подключение в следующих модулях): m05 —
|
||
создание draft `author=rules`; m06 — импорт пакета программы; m08 —
|
||
admin-API программ. Sync в m02 остаётся на репозиториях (v1).
|
||
- Интеграционные тесты Core-сервисов живут в `Server.WatchBody.Web.Tests`
|
||
(общая docker-инфраструктура: `TestApp`, подключение из конфига);
|
||
юнит-инфраструктура Core.Tests (fake-транспорт ConnectionStringTest)
|
||
для сервиса над репозиториями не подходит.
|
||
- jsonb нормализует пробелы — сравнение body в тестах через
|
||
`JsonElement.DeepEquals`.
|
||
- Прогон тестов — PostgreSQL 17 в docker `watchbody-pg` (порт 5433,
|
||
БД `watchbody`), как в m01/m02.
|