intermediate

Supertest и MSW

Проверяйте HTTP handlers через Supertest и изолируйте browser или Node network boundaries через MSW request handlers вместо brittle ad hoc mocks.

Supertest гоняет HTTP-сервер в Node integration-тестах — проверяет status, headers и JSON против реальных route handlers. MSW перехватывает сеть на уровне fetch/XHR декларативными handlers, в Node и браузере без переписывания каждого client mock.

Supertest для API-поверхности, MSW во frontend-тестах для согласованных ответов backend.

На интервью: когда MSW лучше `jest.mock('axios')` и чем Supertest отличается от изолированного controller.

Типовые ошибки: MSW handlers расходятся с прод API; Supertest без очистки БД; необработанные запросы в strict mode.

Компромисс — реалистичные сетевые границы против сложности общих handler-фикстур.

Чеклист:

  • Централизуйте MSW handlers рядом с типами API или OpenAPI.
  • Сбрасывайте handlers между тестами.
  • Supertest против реального app instance, не только stub router.