はじめに
Jestのテストを書いていて気になった個所があったので修正箇所をまとめています
問題
Reactのテストを実行すると赤文字で以下のエラーが出力されるようになりました
ReactDOM.render is no longer supported in React 18. Use createRoot instead. Until you switch to the new API, your app will behave as if it's running React 17. Learn more: https://reactjs.org/link/switch-to-createroot
テストは問題なく通るのですが、warningでログに色々表示されてしまうので非表示にしようと思いました
解決方法
setupTests.ts
を以下に変更したところwarningが消えました
setupTests.ts
import '@testing-library/jest-dom';
const originalError = console.error;
beforeAll(() => {
console.error = (...args) => {
if (/Warning: ReactDOM.render is no longer supported in React 18./.test(args[0])) {
return;
}
originalError.call(console, ...args);
};
});
afterAll(() => {
console.error = originalError;
});
参考