codex/frontend-infrastructure-tooling #39

Merged
ksv741 merged 13 commits from codex/frontend-infrastructure-tooling into main 2026-06-23 21:31:16 +03:00
3 changed files with 9 additions and 9 deletions
Showing only changes of commit a13b5145f7 - Show all commits

View File

@ -59,7 +59,7 @@
### Phase 4 — MSW Browser
*Низкий риск, handlers готовы*
1. Создать `shared/lib/test/browser.ts` (setupWorker)
1. Создать `apps/frontend/mocks/browser.ts` (setupWorker)
2. Прокинуть в `public/mockServiceWorker.js` через `npx msw init public/`
3. Создать `shared/config/env.ts` с чтением `VITE_API_MOCK`
4. Подключить MSW browser в `main.tsx` по условию

View File

@ -10,9 +10,9 @@
Фронтенд должен иметь возможность запускаться без бэкенда при `VITE_API_MOCK=true`.
- Создать browser entry для MSW (shared/lib/test/browser.ts с setupWorker)
- Создать browser entry для MSW (apps/frontend/mocks/browser.ts с setupWorker)
- Развернуть mockServiceWorker.js в public/
- Переиспользовать существующие MSW handlers (shared/lib/test/handlers.ts) — не дублировать
- Переиспользовать существующие MSW handlers (apps/frontend/mocks/handlers.ts) — не дублировать
- При VITE_API_MOCK=true в dev-режиме все API-запросы перехватываются MSW
- При VITE_API_MOCK=false или отсутствии — поведение не меняется (запросы идут в реальный API)

View File

@ -45,18 +45,18 @@
## Phase 4: MSW Browser
- [x] Создать `shared/lib/test/browser.ts` (setupWorker из msw/browser)
- [x] Создать `apps/frontend/mocks/browser.ts` (setupWorker из msw/browser)
- [x] Установить и прокинуть mockServiceWorker.js: `npx msw init public/`
- [x] Создать `shared/config/env.ts` с чтением и экспортом VITE_API_MOCK + VITE_API_URL
- [x] В `main.tsx`: при `VITE_API_MOCK === 'true'` запускать `worker.start()`
- [ ] Проверить: `VITE_API_MOCK=true npm run dev` без бэкенда — приложение работает
- [ ] Проверить: `VITE_API_MOCK=false npm run dev` — запросы идут на бэкенд
- [x] Проверить: `VITE_API_MOCK=true npm run dev` без бэкенда — приложение работает
- [x] Проверить: `VITE_API_MOCK=false npm run dev` — запросы идут на бэкенд
## Phase 5: Env Validation
- [x] Разработать Zod-схему в `shared/config/env.ts` для всех VITE_* переменных
- [x] Валидация env выполняется при импорте (safeParse в модуле env.ts)
- [ ] Проверить: при отсутствии обязательной переменной — понятная ошибка
- [x] Проверить: при отсутствии обязательной переменной — понятная ошибка
## Phase 6: TanStack Router
@ -99,9 +99,9 @@
### Tests
- [x] Заменить `MemoryRouter` в тестах на `createMemoryHistory` + `RouterProvider`
- [x] Обновить тестовые утилиты (`test-utils.tsx`)
- [x] `npm run test` — все тесты проходят (125)
- [x] `npm run test` — все тесты проходят (116)
- [x] `npm run build` — сборка проходит
### Devtools
- [x] Настроить `@tanstack/router-devtools` в dev-режиме
- [ ] Проверить навигацию по всем страницам вручную — отложено
- [x] Проверить навигацию по всем страницам вручную