I'm stuck for hours trying to test a simple page, I'm using "react-router-dom": "^6.3.0"
I have this component that I want to test:
const Main: React.FC = () => {
return (
<BrowserRouter>
<Routes>
<Route path="/" element={<div>Home</div>}></Route>
<Route
path={"about"}
element={<div>About</div>}
/>
</Routes>
</BrowserRouter>
)
}
export default Main
It worked well, then I have Main.test.tsx
const renderWithRouter = (ui: React.ReactElement, { route = '/' } = {}) => {
window.history.pushState({}, 'Test page', route)
return {
user,
...render(ui, { wrapper: BrowserRouter }),
}
}
describe('Main', () => {
beforeEach(() => {
renderWithRouter(<Main />, { route: '/about' })
})
test('should land on about page', async () => {
await screen.findByText('about')
})
})
but I got this error
Error: Uncaught [Error: You cannot render a <Router> inside another <Router>. You should never have more than one in your app.]
Any clue why?