エラー内容
actがテスト環境に設定されてないという、React18から発生する可能性があるエラーです。
Warning: The current testing environment is not configured to support act(...)
対応したこと
Jestのセットアップファイルに以下を追記しました。
実行環境がテスト環境かどうかをReactに伝えるために、React18から追加されたフラグです。
globalThis.IS_REACT_ACT_ENVIRONMENT = true;
これで通常はエラーが解消されるはずなのですが、私の場合は変わらずエラーが出続けていました。
解決まで
色々と試行錯誤した結果、ライブラリuserEventとactの併用が原因でした。
userEventで行っていたクリックイベントをfireEventに変更することで、無事エラーも解消しました。
const user = userEvent.setup()
// ...
act(async () => {
await user.click(
screen.getByRole('button', { name: "送信" })
)
})
// ↓ fireEventに変更
act(() => {
fireEvent.click(
screen.getByRole('button', { name: "送信" })
)
})