RepoJournal
Meta

Meta

React, React Native, and Jest - the open source under what Meta ships

Keep up with Meta in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

One email a day. Unsubscribe in one click.

Pick a date

Topics: JavaScript AI / ML Full archive →

The Wire · Showcase

JEST FIXES MODULE CACHING BUG THAT BREAKS VIRTUAL MOCKS

By RepoJournal · Filed · About Meta

Jest's resolver was silently losing track of virtual mock state, causing test isolation failures and cache collisions across parallel workers.

The core issue: `Resolver._moduleIDCache` keyed lookups by importer, module, and options, but omitted whether that specific lookup was registered as a virtual mock [1]. That meant two different virtual mock states could collide in the cache, breaking test isolation. JasonColapietro's fix includes each requested module's virtual-mock state in the cache key itself, plus a two-suite end-to-end regression that runs both test files in one worker to lock in the fix [1]. On the interop front, Jest now correctly handles ESM exports like `export { myVariable as "module.exports" }` to match Node's CommonJS compatibility layer [2]. Meanwhile, watch mode on Windows was crashing when `git maintenance` or other processes held file locks, surfacing as `EPERM` errors that Jest couldn't tolerate [3]. The watcher now treats `EPERM` on Windows the same way it treats `ENOENT` anywhere else: recoverable and survivable [3]. React Native continues mechanically converting Objective-C push notification and image store modules to TurboModule specs, with hand-reconciliation of type mismatches along the way [4] [5].

One email a day. Unsubscribe in one click.

Action items

References

  1. [1] fix(jest-resolve): isolate virtual mock module IDs ↗ facebook/jest
  2. [2] fix(cjs-esm-interop): support `module.exports` in ESM ↗ facebook/jest
  3. [3] fix(jest-haste-map): tolerate transient EPERM in the watcher lstat ↗ facebook/jest
  4. [4] xplat/js/react-native-github/packages/react-native/Libraries/PushNotificationIOS/RCTPushNotificationManager.mm (#57833) facebook/react-native
  5. [5] xplat/js/react-native-github/packages/react-native/Libraries/Image/RCTImageStoreManager.mm (#57842) facebook/react-native

Quick answers

What shipped in Meta on August 9, 2026?
Jest's resolver was silently losing track of virtual mock state, causing test isolation failures and cache collisions across parallel workers. In total, 12 commits and 8 pull requests landed.
Who contributed to Meta on August 9, 2026?
3 developers shipped this update, including JasonColapietro, avivkeller, and KirtiRamchandani.
What were the notable Meta updates?
fix(jest-resolve): isolate virtual mock module IDs, fix(cjs-esm-interop): support `module.exports` in ESM, and fix(jest-haste-map): tolerate transient EPERM in the watcher lstat.

More from Meta

Daily updates, in your inbox

Follow Meta

Keep up with Meta in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

or

One email a day. Unsubscribe in one click. Read a past issue →

Elsewhere on the wire

Want every project, not just this one?