Enzyme: TypeError: Cannot read property 'ReactCurrentOwner' of undefined when trying to require enzyme-adapter-react-16

Created on 17 Apr 2018  路  2Comments  路  Source: enzymejs/enzyme

Current behavior

require("enzyme-adapter-react-16") raises react-dom/server exception

Version

| library | version
| ---------------- | -------
| Enzyme | 3.3.0
| React | 16.3.2

Adapter

  • [x] enzyme-adapter-react-16
  • [ ] enzyme-adapter-react-15
  • [ ] enzyme-adapter-react-15.4
  • [ ] enzyme-adapter-react-14
  • [ ] enzyme-adapter-react-13
  • [ ] enzyme-adapter-react-helper
  • [ ] others ( )

I found lots of issues saying that this problem should go away if you start using the same react/react-dom/react-test-renderer version. It's all 16.3.2 in my case but simple require("enzyme-adapter-react-16") raises exception:

TypeError: Cannot read property 'ReactCurrentOwner' of undefined
        at /Users/1999/proj/node_modules/react-dom/cjs/react-dom-server.node.development.js:96:40
        at Object.<anonymous> (/Users/1999/proj/node_modules/react-dom/cjs/react-dom-server.node.development.js:2767:5)
        at Runtime._execModule (/Users/1999/proj/node_modules/jest-runtime/build/index.js:448:13)
        at Runtime.requireModule (/Users/1999/proj/node_modules/jest-runtime/build/index.js:265:14)
        at Runtime.requireModuleOrMock (/Users/1999/proj/node_modules/jest-runtime/build/index.js:337:19)
        at Object.<anonymous> (/Users/1999/proj/node_modules/react-dom/server.node.js:6:20)
        at Runtime._execModule (/Users/1999/proj/node_modules/jest-runtime/build/index.js:448:13)
        at Runtime.requireModule (/Users/1999/proj/node_modules/jest-runtime/build/index.js:265:14)
        at Runtime.requireModuleOrMock (/Users/1999/proj/node_modules/jest-runtime/build/index.js:337:19)
        at Object.<anonymous> (/Users/1999/proj/node_modules/react-dom/server.js:3:18)
        at Runtime._execModule (/Users/1999/proj/node_modules/jest-runtime/build/index.js:448:13)
        at Runtime.requireModule (/Users/1999/proj/node_modules/jest-runtime/build/index.js:265:14)
        at Runtime.requireModuleOrMock (/Users/1999/proj/node_modules/jest-runtime/build/index.js:337:19)
        at Object.<anonymous> (/Users/1999/proj/node_modules/enzyme-adapter-react-16/build/ReactSixteenAdapter.js:17:15)
        at Runtime._execModule (/Users/1999/proj/node_modules/jest-runtime/build/index.js:448:13)
        at Runtime.requireModule (/Users/1999/proj/node_modules/jest-runtime/build/index.js:265:14)
        at Runtime.requireModuleOrMock (/Users/1999/proj/node_modules/jest-runtime/build/index.js:337:19)
        at Object.<anonymous> (/Users/1999/proj/node_modules/enzyme-adapter-react-16/build/index.js:2:18)
        at Runtime._execModule (/Users/1999/proj/node_modules/jest-runtime/build/index.js:448:13)
        at Runtime.requireModule (/Users/1999/proj/node_modules/jest-runtime/build/index.js:265:14)
        at Runtime.requireModuleOrMock (/Users/1999/proj/node_modules/jest-runtime/build/index.js:337:19)
        at Object.it (/Users/1999/proj/src/assets/js/mechanics/choice-sentence/index.spec.jsx:14:23)
        at Object.asyncFn (/Users/1999/proj/node_modules/jest-jasmine2/build/jasmine_async.js:82:37)
        at resolve (/Users/1999/proj/node_modules/jest-jasmine2/build/queue_runner.js:52:12)
        at new Promise (<anonymous>)
        at mapper (/Users/1999/proj/node_modules/jest-jasmine2/build/queue_runner.js:39:19)
        at promise.then (/Users/1999/proj/node_modules/jest-jasmine2/build/queue_runner.js:73:82)
        at <anonymous>
        at process._tickCallback (internal/process/next_tick.js:188:7)
invalid

Most helpful comment

One more possible cause for this problem which happened to me recently: you're using adapter for React version 16 while your project is using React version 15. Double check that your React and enzyme adapter versions match.

All 2 comments

My bad. The story behind this bug was that I tried to run preact enzyme tests with preact enzyme adapter. This turned to be a bad idea since adapter for preact is a bit raw, so I installed react/react-dom and enzyme adapter for react@16. But I forgot to remove jest module mappings:

image

After I did this everything works like a charm.

One more possible cause for this problem which happened to me recently: you're using adapter for React version 16 while your project is using React version 15. Double check that your React and enzyme adapter versions match.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

aweary picture aweary  路  3Comments

timhonders picture timhonders  路  3Comments

blainekasten picture blainekasten  路  3Comments

thurt picture thurt  路  3Comments

benadamstyles picture benadamstyles  路  3Comments