question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[Jest] V2 - rc2 Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'NativeReanimated'

See original GitHub issue

Description

I bumped RC 1 -> RC 2 in my project and suffered JEST error like the following

 ● Test suite failed to run

    Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'NativeReanimated' could not be found. Verify that a module by this name is registered in the native binary.

      at invariant (node_modules/invariant/invariant.js:40:15)
      at Object.getEnforcing (node_modules/react-native/Libraries/TurboModule/TurboModuleRegistry.js:39:3)
      at Object.<anonymous> (node_modules/react-native-reanimated/src/reanimated2/NativeReanimated.native.js:5:23)
      at Object.<anonymous> (node_modules/react-native-reanimated/src/reanimated2/WorkletEventHandler.js:1:1)

My mock file is like that.

// @ts-ignore https://github.com/wcandillon/react-native-redash/issues/395
global.__reanimatedWorkletInit = () => {};

jest
  .mock('react-native-reanimated', () => ({
    ...require('react-native-reanimated/mock'),
  }))
  .mock('react-native/Libraries/Animated/src/NativeAnimatedHelper');

Expected behavior

Test should success

Package versions

  • React: 16.13.1
  • React Native: 0.63.4
  • React Native Reanimated: 2.0.0-rc02
  • NodeJS: 14.7.0

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Reactions:24
  • Comments:18 (4 by maintainers)

github_iconTop GitHub Comments

22reactions
mgambaticommented, Jan 28, 2021

I opened a PR, but if you guys want a temporary fix. Use ds300/patch-package and put this on patches/react-native-reanimated+2.0.0-rc.2.patch:

diff --git a/node_modules/react-native-reanimated/mock.js b/node_modules/react-native-reanimated/mock.js
index 3bc10c5..c26bce3 100644
--- a/node_modules/react-native-reanimated/mock.js
+++ b/node_modules/react-native-reanimated/mock.js
@@ -234,6 +234,7 @@ module.exports = {
   __esModule: true,
 
   ...Reanimated,
+  ...ReanimatedV2,
 
   default: {
     ...Reanimated,
diff --git a/node_modules/react-native-reanimated/src/reanimated2/mock.js b/node_modules/react-native-reanimated/src/reanimated2/mock.js
index e4b6a8c..7b4ebe7 100644
--- a/node_modules/react-native-reanimated/src/reanimated2/mock.js
+++ b/node_modules/react-native-reanimated/src/reanimated2/mock.js
@@ -1,11 +1,18 @@
-const hooks = require('./Hooks');
 
 /* eslint-disable standard/no-callback-literal */
+const useRef = require('react').useRef
 const NOOP = () => {};
 const ID = (t) => t;
 
 const ReanimatedV2 = {
-  useSharedValue: hooks.useSharedValue,
+  useSharedValue: (init) => {
+    const ref = useRef(null);
+    if (ref.current === null) {
+      ref.current = { value: init };
+    }
+  
+    return ref.current
+  },
   useDerivedValue: (a) => ({ value: a() }),
   useAnimatedScrollHandler: () => NOOP,
   useAnimatedGestureHandler: () => NOOP,

5reactions
Andreycocommented, Jan 20, 2021

This is not only Jest related. Same happens when

  • remote debugging
  • with rc-1 as well

Remote debugging issue indicates me Hermes comes into play. That is not viable on iOS for me 🤷‍♂️

Read more comments on GitHub >

github_iconTop Results From Across the Web

Invariant Violation: TurboModuleRegistry.getEnforcing ...
'NativeReanimated' Cause - React Native Reanimated 2.0. I got this TurboModuleRegistry.getEnforcing(...): 'NativeReanimated' error and I ...
Read more >
[Jest] V2 - rc2 Invariant Violation: TurboModuleRegistry ...
Description. I bumped RC 1 -> RC 2 in my project and suffered JEST error like the following ○ Test suite failed to...
Read more >
'imageloader' could not be found. - You.com | The AI Search ...
getEnforcing 'ImageLoader' issue ... Invariant Violation: TurboModuleRegistry. ... software-mansion/react-native-reanimated[Jest] V2 - rc2 Invariant ...
Read more >
'DevSettings' could not be found-React Native
Coding example for the question Invariant Violation: TurboModuleRegistry.getEnforcing(...): 'DevSettings' could not be found-React Native.
Read more >
react-native-reanimated - npm
React Native's Animated library reimplemented. Reanimated 2 is here! Check out our documentation page for more information. React Native ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found