Skip to content

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:install

Express backend

Запуск:

bash
npm run backend:dev

Backend предоставляет:

EndpointНазначение
GET /api/healthhealth check
GET /api/usersсписок users
POST /api/usersсоздание user
GET /api/feedcursor pagination
GET /api/private/profileendpoint с access token
POST /api/auth/refreshrefresh flow
GET /api/slowcancellation
POST /api/test/resetdeterministic reset
GET /api/test/metricsсчётчики requests

Проверки:

bash
npm run backend:typecheck
npm run backend:lint
npm run backend:test
npm run backend:build

React frontend

Frontend использует production-путь:

text
React → business store → query-layer store → feature API → Express

Запуск в двух терминалах:

bash
npm run backend:dev
bash
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:test

Config автоматически поднимает 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 собираются отдельно.