reactjs - how to unit test react reduxsauce saga using jest and enzyme? -
i new react , redux. developing project , want have redux, using reduxsauce , redux-saga, struggling write unit tests these. here folder structure: 
my app-test.js:
import app '../../../assets/src/app' import react 'react'; import renderer 'react-test-renderer'; import configurestore 'redux-mock-store' import createstore './redux' describe('app', () => { const initialstate = {output:100} const mockstore = configurestore() let store,container const store = createstore() beforeeach(()=>{ store = mockstore(initialstate) container = shallow(<app store={store} /> ) }) it('renders correctly', () => { const rendered = renderer.create( <app/> ); expect(rendered.tojson()).tomatchsnapshot(); }); }); here app.js:
import react 'react'; import reactdom 'react-dom'; import index './screens/index'; import { provider } 'react-redux' import createstore './redux' const store = createstore() const rootelement = document.getelementbyid('subscription'); export default class app extends react.component { render() { return ( <provider store={store}> <index /> </provider> ); } } reactdom.render(<app />, rootelement); i have tried both mockstore , store variable, getting following error:
any suggestions wrong here?
thanks
update 1
i muted code shallow, , app-test.js file looks this:
import app '../../../assets/src/app' import react 'react'; import renderer 'react-test-renderer'; import configurestore 'redux-mock-store' import createstore './redux' describe('app', () => { const initialstate = {output:100} const mockstore = configurestore() let store,container const store = createstore() // beforeeach(()=>{ //// store = mockstore(initialstate) // container = shallow(<app store={store} /> ) // }) it('renders correctly', () => { const rendered = renderer.create( <app/> ); expect(rendered.tojson()).tomatchsnapshot(); }); }); but different error now:
update 2
after trying solution suggested rami enbashi in answer, previous error (before update 1) again started appearing.
this seems transpilation issue. need register babel transpile es6 es5 before run unit tests. 1 way this.
in package.json add jest config:
"jest": { "setuptestframeworkscriptfile": "./scripts/testsetup.js" } and in testsetup.js add this
require('babel-register')(); require("babel-polyfill"); require("babel-jest"); ..... make sure read jest documentation more config or needed plugins. , make sure install them first.


Comments
Post a Comment