✨
Textencoder Is Not Defined Jest
Jestを使用している際に、TextEncoder is not defined というエラーが発生しました。
原因
Jestは、デフォルトではNode.js環境を使用してテストを実行します。
しかし、TextEncoder と TextDecoder はブラウザのWeb APIであり、Node.jsの標準ライブラリには含まれていません。
このため、Node.js環境ではTextEncoderが定義されていないという、エラーが発生します。
解決方法
utilモジュールを使用する
Node.jsのutilモジュールには、TextEncoderとTextDecoderが組み込まれいましたので、こちらをグローバルに設定しました。
// jest.setup.js
const { TextEncoder, TextDecoder } = require('util');
global.TextEncoder = TextEncoder;
global.TextDecoder = TextDecoder;
// jest.config.ts
setupFiles: ['<rootDir>/jest.setup.js'],
Discussion