Я пишу юнит-тест для имитации нажатия на кнопку. Метод onClick кнопки имеет ссылку на метод, который загружает другую страницу, используя props.history.pu sh ('/). Симуляция работает, но шутка говорит, что она не может прочитать свойство pu sh, потому что история не определена, и это делает тест неудачным. Как я могу добавить props.history во время модульного тестирования. Что я делаю неправильно.
Это тестовый файл
import React from 'react';
import Landing from '../Components/Landing/Landing';
import configureStore from 'redux-mock-store';
import Enzyme, { mount } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
import {StyleRoot}from 'radium';
import { Provider } from 'react-redux';
import { createMemoryHistory } from 'history';
Enzyme.configure({ adapter: new Adapter() });
const mockStore = configureStore();
let wrapper;
let store;
const initialState = {
auth:{
isLoggedIn:false,
role:''
},
};
const history = createMemoryHistory().push('/');
beforeEach(()=>{
store = mockStore(initialState);
wrapper = mount( <Provider store={store} >
<StyleRoot>
<Landing history={history}/>
</StyleRoot>
</Provider>
);
});
describe('Landing.js',()=>{
it ('Simulate click', ()=>{
const signInBtn = wrapper.find('.Btn');
signInBtn.simulate('click');
});
});
Это компонент
const landing = props =>{
const loadSignInPage = ()=>{
props.history.push('/signin');
};
return(
<React.Fragment>
<Button buttonClass="SignIn" className="Btn" click={loadSignInPage}>SIGN IN</Button>
</React.Fragment>
);
};
const mapStateToProps = state =>{
return{
isLoggedIn: state.auth.isLoggedIn,
role: state.auth.role
};
};
export default connect(mapStateToProps)(landing);
Ошибка
TypeError: Cannot read property 'push' of undefined
8 |
9 | const loadSignInPage = ()=>{
> 10 | props.history.push('/signin');
| ^
11 | };
Как добавить props.history при модульное тестирование