React + TypeScript + JestでUserAgentをモックする
更新日:
投稿日:
投稿日:
global.navigatorをモックにする方法- モックというか書き換えてるだけ
jestのモック機能はプロパティのモックが出来ないので、実オブジェクトを強制的に書き換えて実施する
サンプルコード
Object.defineProperty()を利用して実装value, プロパティが返す値configurable, 再定義可能かどうか、設定しないと再実行でコケる
- 実際の使用ではユーティリティ関数を作っておき、
afterAll()でnavigator.userAgentを初期値に戻すのが望ましい
Object.defineProperty(global.navigator, 'userAgent', {
value:
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36',
configurable: true,
});