Тема
Express backend и Playwright
В корне repository есть три workspace для интеграционной проверки:
text
backend/ Express test API
frontend/ React + MobX consumer на esbuild
playwright/ browser и API testsОни проверяют реальный HTTP и MobX-state, а не mocks внутренних классов.
MF-сценарии Playwright вынесены в отдельный раздел: «Тестирование Module Federation».
Установка
bash
npm installДля browser suite один раз установите Chromium:
bash
npm run playwright:installExpress backend
Запуск:
bash
npm run backend:devBackend предоставляет:
| Endpoint | Назначение |
|---|---|
GET /api/health | health check |
GET /api/users | список users |
POST /api/users | создание user |
GET /api/feed | cursor pagination |
GET /api/private/profile | endpoint с access token |
POST /api/auth/refresh | refresh flow |
GET /api/slow | cancellation |
POST /api/test/reset | deterministic reset |
GET /api/test/metrics | счётчики requests |
Проверки:
bash
npm run backend:typecheck
npm run backend:lint
npm run backend:test
npm run backend:buildReact frontend
Frontend использует production-путь:
text
React → business store → query-layer store → feature API → ExpressЗапуск в двух терминалах:
bash
npm run backend:devbash
npm run frontend:devОткройте http://127.0.0.1:3200.
Frontend проверяет:
- автоматическую загрузку списка через
QueryStore; - создание user через
RequestStore; - auth refresh через
FetchStore; - отмену slow request;
- отсутствие Axios/API imports в React-компоненте.
Playwright API tests
API tests не запускают Chromium:
bash
npm run playwright:test:apiОни проверяют status codes, payload validation, cursor pagination и refresh sequence.
Browser tests
bash
npm run playwright:testConfig автоматически поднимает backend, React frontend и отдельный Vite harness. Сценарий frontend.spec.ts вводит данные через DOM и проверяет результат реального Express API.
Подробные runtime/MF-проверки — deduplication между participants, namespace denial, shared cache и unmount ownership — описаны только в MF-разделе.
Что доказывает standalone-стенд
- UI работает только с business stores;
- feature API выполняет и валидирует Axios response;
- loading/status/error принадлежат MobX;
- auth refresh не попадает в React;
- cancellation доходит до Express connection;
- frontend, backend и package собираются отдельно.