Textencoder Is Not Defined Jest

2025/01/30に公開

Jestを使用している際に、TextEncoder is not defined というエラーが発生しました。

原因

Jestは、デフォルトではNode.js環境を使用してテストを実行します。
しかし、TextEncoderTextDecoder はブラウザのWeb APIであり、Node.jsの標準ライブラリには含まれていません。
このため、Node.js環境ではTextEncoderが定義されていないという、エラーが発生します。

解決方法

utilモジュールを使用する

Node.jsのutilモジュールには、TextEncoderTextDecoderが組み込まれいましたので、こちらをグローバルに設定しました。

// jest.setup.js
const { TextEncoder, TextDecoder } = require('util');
global.TextEncoder = TextEncoder;
global.TextDecoder = TextDecoder;

// jest.config.ts

setupFiles: ['<rootDir>/jest.setup.js'],

Discussion