実現したいこと
jestでテストを行い、render出来ていることを確かめたい。
前提
jestでテストを行ったのですが、「The above error occurred in the <Link> component」と「TypeError: Cannot destructure property 'basename' of 'React__namespace.useContext(...)' as it is null.」のエラーが発生していてテストがパスできません。
発生している問題・エラーメッセージ
console.error The above error occurred in the <Link> component:
console.error Error: Uncaught [TypeError: Cannot destructure property 'basename' of 'React__namespace.useContext(...)' as it is null.]
該当のソースコード
import React from 'react' import { Auth } from 'aws-amplify' import { Amplify, I18n } from 'aws-amplify' import { translations } from '@aws-amplify/ui-react' import { Authenticator } from '@aws-amplify/ui-react' import { createBrowserRouter, createRoutesFromElements, Route, RouterProvider, } from 'react-router-dom' import {Home} from './lib/pages/Home' I18n.putVocabularies(translations) I18n.setLanguage('ja') Amplify.configure({ Auth: { region: hogehoge, userPoolId: hogehoge, userPoolWebClientId: hogehoge } }) const App = () => { const router = createBrowserRouter( createRoutesFromElements( <> <Route path="/" element={<Layout />}> <Route index element={<Home />} /> </Route> </> ) ) return ( <Authenticator hideSignUp> <Home /> </Authenticator> ) } export default App
import React from 'react' const Home = () => { return ( <div> Homeだよ <div> ) } export default Home
import "@testing-library/jest-dom" import { render, screen } from "@testing-library/react" import { Home } from "../lib/pages/Home" describe('Home', () => { test('画面が表示されることを確認', () => { const { getByText } = render(<Home />) expect(getByText(/Homeだよ/i)).toBeInTheDocument() })
試したこと
react-router-domのバージョン問題かと思い。
アンインストールしたのち、「 npm i react-router-dom」を行ったが同様のエラーが出た。
補足情報(FW/ツールのバージョンなど)
@testing-library/jest-dom": "^5.16.5",
@types/jest": "^27.5.2",
@types/node": "^16.18.34",
react-router": "^6.11.2",
react-router-dom": "^6.12.1"
回答1件
あなたの回答
tips
プレビュー