Я пытаюсь проверить свой маршрут компонента 404 в Ферменте, но не могу пройти тест по какой-то странной причине.
Компонент 404 выглядит следующим образом:
const PageNotFound = () => {
return <h1>404: Page Not Found!</h1>;
};
export default PageNotFound;
Все маршруты объявлены внутри App
, а именно:
const App = () => {
return (
<Provider store={store}>
<ThemeProvider theme={theme}>
<CssBaseline />
<AppRouter />
</ThemeProvider>
</Provider>
);
};
, где я отображаю PageNotFound
для всех необъявленных маршрутов.
, когда я пытаюсь проверить, работает ли эта настройка:
import React from 'react';
import { MemoryRouter } from 'react-router-dom';
import { shallow, mount } from 'enzyme';
import App from '../App';
import PageNotFound from '../pages/PageNotFound';
test('404 redirection when the path does not exist', () => {
const wrapper = mount(
<MemoryRouter initialEntries={['/doesnotexist']}>
<App />
</MemoryRouter>
);
//fails
expect(wrapper.find(PageNotFound).length).toEqual(1);
});
по какой-то причине тест не пройден.
Если я добавлю какой-нибудь случайный компонент в компонент 404 и попытаюсь получить фермент для find
его в тесте, он будет работать:
const PageNotFound = () => {
return <div> <OtherRandomComponent/> <h1>404: Page Not Found!</h1></div>;
};
test('404 redirection when the path does not exist', () => {
const wrapper = mount(
<MemoryRouter initialEntries={['/doesnotexist']}>
<App />
</MemoryRouter>
);
// works. trying to find "PageNotFound" still does not work.
expect(wrapper.find(OtherRandomComponent).length).toEqual(1);
});
Может кто-нибудь помочь мне понять почему?