Я экспортирую свой компонент Navbar следующим образом:
export const Navbar = ({ user }) => (
<nav className={styles.navbarContainer}>
<img src={Logo} alt={text.logoAlt} />
<NavLink to={feedPath} className={styles.link} activeClassName={styles.activeLink}>
{text.feedPathText}
</NavLink>
<NavLink to={viewingsPath} className={styles.link} activeClassName={styles.activeLink}>
{text.viewingsPathText}
</NavLink>
<span className={styles.navItem}>
<img className={styles.mapIcon} src={mapIcon} alt={text.mapAlt} />
{text.defaultTheater}
</span>
<span className={styles.navItem}>
<img className={styles.avatar} src={user.profilePictureUrl} alt={text.avatarAlt} />
{`${user.firstName} ${user.lastName}`}
</span>
</nav>
);
const mapStateToProps = state => ({
user: state.currentUser.user
});
Navbar.propTypes = {
user: PropTypes.shape({
profilePictureUrl: PropTypes.string,
firstName: PropTypes.string,
lastName: PropTypes.string
})
};
export default connect(
mapStateToProps,
null
)(Navbar);
Когда я ввожу его для тестирования защищенного маршрута:
import React from 'react';
import { mount } from 'enzyme';
import { BrowserRouter } from 'react-router-dom';
import { ProtectedRoute } from '../index';
import { Navbar } from '../../../Navbar';
describe('Auth Component', () => {
const user = {
firstName: 'First',
lastName: 'Last',
profilePictureUrl: 'avatar.jpeg'
};
const props = {
component: () => <div id="component" />,
path: ''
};
const mountRoute = isAuth =>
mount(
<BrowserRouter>
<Navbar user={user} />
<ProtectedRoute isAuth={isAuth} {...props} />
</BrowserRouter>
);
it('renders the component if isAuth is true', () => {
const wrapper = mountRoute(true);
expect(wrapper.find('#component').exists()).toBe(true);
});
});
Это дает мне ошибку, что он ожидает подключения магазина к компоненту.
Не удалось найти «store» в контексте «Connect (Navbar)»
Не совсем уверен, почему это происходит. Я правильно импортирую простой компонент?