🥺
[Jest] reference any out-of-scope variablesで悩んでいるそこのあなた
エラー
The module factory of `jest.mock()` is not allowed to reference any out-of-scope variables
結論
Jest.fn()
などで作ったmockの名前をmock~
から始める
- const hogeFunctionMock = jest.fn()
+ const mockHogeFunction = jest.fn()
解説
jest.mock()
は指定したファイル内のスコープのモックしか取れない。が
mock~から命名するとその規則を無視してくれるらしい (間違ってたらすんません)
参考
CAUTIONの部分
以下deepL
jest.mock()の呼び出しはファイルの先頭に引き上げられるので、Jestはスコープ外の変数へのアクセスを防ぎます。デフォルトでは、最初に変数を定義し、それをファクトリーで使用することはできません。Jestはmockという単語で始まる変数についてはこのチェックを無効にします。しかし、変数が時間通りに初期化されることを保証するかどうかはあなた次第です。Temporal Dead Zoneに注意してください。
感想
Jest難しい
Discussion