Я только что присоединился к фронт-команде, и меня попросили провести несколько тестов приложения, мне нужно убедиться, что моя страница Not Found появляется только в том случае, если пользователь не вводит правильный URL-адрес.
Я знаю, что есть MemoryRouter, если для маршрутизации нашего приложения используется реагирующий маршрутизатор, но моя команда не использует его:
<MemoryRouter initialEntries={["/random"]}>
<Routes />
</MemoryRouter>
это компонент, который управляет маршрутизацией:
const routes = {
path: "",
children: [
{
path: "/",
load: () => import(/* webpackChunkName: 'home' */ "./home")
},
{
path: "/login",
load: () => import(/* webpackChunkName: 'login' */ "./login")
},
{
path: "/delivery",
load: () => import(/* webpackChunkName: 'delivery' */ "./delivery")
},
{
path: "/offers",
load: () => import(/* webpackChunkName: 'delivery' */ "./offers")
},
// Wildcard routes, e.g. { path: '(.*)', ... } (must go last)
{
path: "(.*)",
load: () => import(/* webpackChunkName: 'not-found' */ "./not-found")
}
],
async action({ next }) {
const route = await next();
return route;
}
};
**export default routes:**
Итак, я все еще пытался с MemoryRouter, но он не работает:
import React from "react";
import { mount } from "enzyme";
import { MemoryRouter } from "react-router";
import { Route } from "react-router-dom";
import NotFoundPage from "../routes/not-found/NotFound";
import Routes from "../routes/index";
describe("testing NotFoundPage", () => {
it("should go to 404 page", () => {
const component = mount(
<MemoryRouter initialEntries={["/random"]}>
<Routes />
</MemoryRouter>
);
expect(component.find(NotFoundPage)).toHaveLength(1);
});
});