globalThis.IS_REACT_ACT_ENVIRONMENTを設定してもエラーが解決しないとき

エラー内容

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: "送信" })
  )
})
タイトルとURLをコピーしました