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: enter image description here

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:

enter image description here

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:

enter image description here

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

Popular posts from this blog

python - Operations inside variables -

Generic Map Parameter java -

arrays - What causes a java.lang.ArrayIndexOutOfBoundsException and how do I prevent it? -