Jest issue - ReactElement.js: Failed to get mock metadata
Asked Answered
M

1

5

I've a very simple test

/** @jsx React.DOM */
var store = require('../simpleStore');
var TestUtils = require('react/addons').addons.TestUtils;

describe("my tests",function(){
  it('simple test',function(){
     var x=10,
        y=20;
     expect(x).not.toBe(y);
  })
})

Test works fine as long as I dont require TestUtils. The moment I add any node_module reference, I start seeing below error

Using Jest CLI v0.8.0, jasmine1
FAIL  build/stores/__tests__/simple-test.js

● Runtime Error

Error: ../stores/__tests__/simple-test.js:
../../node_modules/react/addons.js:
../../node_modules/react/lib/ReactWithAddons.js:
../../node_modules/react/lib/LinkedStateMixin.js:
../../node_modules/react/lib/ReactLink.js:
../../node_modules/react/lib/React.js:
../../node_modules/react/lib/ReactDOM.js:
../../node_modules/react/lib/ReactDOMTextComponent.js:
../../node_modules/react/lib/ReactComponentBrowserEnvironment.js:
../../node_modules/react/lib/ReactDOMIDOperations.js:
../../node_modules/react/lib/ReactMount.js:
../../node_modules/react/lib/ReactElement.js: Failed to get mock metadata:
../../node_modules/react/lib/canDefineProperty.js
npm ERR! Test failed.  See above for more details.

I'm sure a lot of people are using jest and I'm missing something silly..appreaciate any ideas to fix this issue?

Midsummer answered 27/11, 2015 at 22:50 Comment(0)
H
5

Try to disable mocking for react - in your jset configuraction in package.json:

"unmockedModulePathPatterns": [
  "<rootDir>/node_modules/react",
  "<rootDir>/node_modules/fbjs"
]
Hurff answered 29/11, 2015 at 9:59 Comment(4)
Unfortunately I'm still seeing the error, even with this config: ` "unmockedModulePathPatterns": [ "<rootDir>/node_modules/react", "<rootDir>/node_modules/react-dom", "<rootDir>/node_modules/react-addons-test-utils", "<rootDir>/node_modules/fbjs" ],`Vedavedalia
I gave up on Jest after having multiple issues with testing React-Native. You might be interested in checking out Enzyme (airbnb.io/enzyme) instead. You can use Mocha and Chai for testing and it's, for the most part, painless.Hurff
Thanks for the tip! I ended up just using Jasmine and React TestUtils for now, but Enzyme looks great!Vedavedalia
Did you put your "unmockedModulePathPatterns" inside the "jest" object (nested in it ?) in your json ? It don't work if you put it just under.Distributary

© 2022 - 2024 — McMap. All rights reserved.