1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

findByRole("status") で Spinner をテストできないときの対処法(Jest + Chakra UI)

Last updated at Posted at 2025-09-19

はじめに

Jest でテストを書いたときに「ローディングスピナーが見つからない」というエラーに遭遇しました。この記事では、そのときの状況と解決方法をまとめます。

1.import.meta.env が使えないエラー

シチュエーション

  • React + Vite + Supabase を使った学習記録アプリを開発中

  • Supabase クライアントを Jest でモック化しようとした

  • 本番コード (utils/supabase.ts) をコピーして、mocks/utils/supabase.ts を作成

その中で以下のように書いていた:

const supabaseUrl = import.meta.env.VITE_SUPABASE_URL as string;
const supabaseAnonKey = import.meta.env.VITE_SUPABASE_ANON_KEY as string;

しかし Jest は Vite の import.meta.env を理解できない

問題

import.meta.env は Vite のビルド環境でのみ有効

Jest(Node.js環境+ts-jest)ではサポートされていないため TypeScript コンパイルエラーが発生

解決方法

テスト専用モックでは process.env を利用する

さらに .env.test を作って Jest 実行時にロードさせる

// src/mocks/utils/supabase.ts

const supabaseUrl = process.env.VITE_SUPABASE_URL || "http://localhost:54321";
const supabaseAnonKey = process.env.VITE_SUPABASE_ANON_KEY || "mock-anon-key";

まとめ

  • Supabase モックで import.meta.env を使った → Jest では使えずエラー
    解決方法: process.env に切り替える
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?