TL;DR
- Переработка рантайма улучшает поддержку ESM, включая
require(esm)на Node 24.9+. - Введены fake timers для Temporal API в Node v26.
- Добавлена корректная поддержка снимков React 19 в
pretty-format.
Key Changes
Jest v30.4.0, крупное обновление, выпущенное 7 мая 2026 года компанией Meta, сосредоточено на модернизации ядра и расширении совместимости. Этот релиз особенно важен для инженеров по автоматизации тестирования, работающих с развивающимися экосистемами JavaScript.
Features:
Наиболее заметное изменение — это переработка кастомного рантайма Jest, подготовка к стабильной нативной поддержке ESM. Эта работа позволяет использовать модуль require(esm) на Node 24.9+ (с флагом --experimental-vm-modules). Команды QA теперь могут более эффективно тестировать модули ESM, что соответствует современным практикам разработки JavaScript. Для тех, кто изучает уроки по тестированию с Jest, это означает более плавный опыт работы с импортом модулей.
Еще одна ключевая особенность — введение fake timers для Temporal API в Node v26. Это позволяет точно контролировать тесты, чувствительные ко времени, что критически важно для приложений, использующих новые глобальные объекты Temporal. Jest теперь принимает Temporal.Duration, Temporal.Instant и Temporal.ZonedDateTime в jest.advanceTimersByTime() и jest.setSystemTime().
React 19 теперь корректно поддерживается в pretty-format, гарантируя, что снимки компонентов React работают как ожидается. Это жизненно важно для проектов, использующих Jest с Testing Library для тестирования компонентов.
Среди других дополнений — флаг --collect-tests для обнаружения тестов без их выполнения, конфигурации verbose и silent для каждого проекта, а также поддержка файлов конфигурации jest.config.mts.
Fixes:
Несколько важных исправлений направлены на повышение стабильности и точности. toStrictEqual больше не выдает ошибок при работе с результатами structuredClone из-за несоответствия конструкторов между realms. toMatchObject предотвращает ошибки при встрече с экзотическими итерируемыми объектами. Кроме того, Error.cause теперь включается в вывод JSON failureMessages, улучшая возможности отладки.
Impact for QA Teams
Это обновление упрощает тестирование современных JavaScript-приложений, особенно тех, которые используют ESM и Temporal API. Улучшенная поддержка снимков React 19 обеспечивает последовательное тестирование пользовательского интерфейса. Новый флаг --collect-tests помогает в обнаружении и планировании тестов, улучшая общее управление тестированием.
FAQ
Q: Каково основное улучшение для ESM?
A: Jest v30.4.0 включает переработку рантайма, обеспечивающую поддержку require(esm) на Node 24.9+ для лучшего тестирования модулей ESM.
Q: Как это обновление помогает с тестами, чувствительными ко времени?
A: Оно добавляет fake timers для Temporal API в Node v26, позволяя точно контролировать время в тестах, использующих объекты Temporal.
Q: Полностью ли поддерживается React 19 теперь?
A: Да, pretty-format теперь корректно поддерживает React 19, обеспечивая точное тестирование снимков для компонентов React.
