[CL-1176] Тест-инфра: условные infra-моки — int-тесты получают реальные prisma/config #1193
No reviewers
Labels
No labels
ci-failing
duplicate
needs-rebase
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
europa-tech-srl/europatech!1193
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/claude-cl1176-conditional-prisma-mock"
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?
Что сделано
Устранён источник фиктивных «интеграционных» тестов (выбор CEO из вердикт-меню): фабрики трёх инфраструктурных моков в
src/__tests__/setup.ts(@prisma/client, config/prisma.js, config/index.js) стали условными — для файлов*.int.test.tsвозвращаютimportOriginal(). Интеграционный тест теперь ФИЗИЧЕСКИ не может молча бежать по prismaMock;vi.unmockв int-файлах больше не нужен (существующие остаются no-op-совместимыми).Страж механизма:
real-prisma-guard.int.test.ts— три проверки (реальный SQL против реальной БД, настоящий Prisma.Decimal с арифметикой, настоящий config.escrow) БЕЗ vi.unmock. Red-фаза зафиксирована: до правки 3/3 падали на моках.Попутно: единый TRUNCATE-канон в E2E-файлах — серийный прогон всех 6 int-файлов на одной эфемерной БД 29/29 passed (раньше межфайловые FK-конфликты RESTRICT).
Зачем
Прецедент сессии: «E2E» бежал по глобальному моку и был зелёным, не тронув БД. Условные фабрики делают этот класс фикций структурно невозможным, сохраняя vi.mock-семантику для 873 юнит-файлов.
План тестирования
Полный юнит-сьют: 10998 passed / 0 failed (юнит-поведение не тронуто). Все int-файлы серийно на реальной БД: 29/29. tsc чист, eslint 0 warnings.
Где могу ошибаться
expect.getState().testPathc fallback на__vitest_worker__.filepath— если будущий Vitest сменит оба API, int-файлы тихо получат моки; страж real-prisma-guard это ПОЙМАЕТ (упадёт в E2E-прогоне).*.int.test.ts— новые интеграционные файлы обязаны следовать неймингу; страж документирует.