typescript - UnitTest dengan Jest memberikan saya Error: Encoding tidak dikenali: 'cesu8' saat mencoba menghubungkan database mysql


Saya memiliki masalah dengan unit test saya. Saya menggunakan TypeORM dengan MySQL dan Jest untuk unit test.

Berikut adalah log saat menjalankan 'npm run test'

ReferenceError: Anda mencoba import sebuah file setelah lingkungan Jest dihentikan.

   at Object.getCodec (node_modules/mysql2/node_modules/iconv-lite/lib/index.js:63:27)
      at Object.getDecoder (node_modules/mysql2/node_modules/iconv-lite/lib/index.js:125:23)
      at Object.<anonymous>.exports.decode (node_modules/mysql2/lib/parsers/string.js:10:25)
      at Packet.readNullTerminatedString (node_modules/mysql2/lib/packets/packet.js:398:25)
      at Function.fromPacket (node_modules/mysql2/lib/packets/handshake.js:62:33)
/home/juan/projects/panel-uifra/node_modules/mysql2/node_modules/iconv-lite/lib/index.js:104
                throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '"+enc+"')");
                ^

Error: Encoding not recognized: 'cesu8' (searched as: 'cesu8')
    at Object.getCodec (/home/juan/projects/panel-uifra/node_modules/mysql2/node_modules/iconv-lite/lib/index.js:104:23)
    at Object.getDecoder (/home/juan/projects/panel-uifra/node_modules/mysql2/node_modules/iconv-lite/lib/index.js:125:23)
    at Object.<anonymous>.exports.decode (/home/juan/projects/panel-uifra/node_modules/mysql2/lib/parsers/string.js:10:25)
    at Packet.readNullTerminatedString (/home/juan/projects/panel-uifra/node_modules/mysql2/lib/packets/packet.js:398:25)
    at Function.fromPacket (/home/juan/projects/panel-uifra/node_modules/mysql2/lib/packets/handshake.js:62:33)
    at ClientHandshake.handshakeInit (/home/juan/projects/panel-uifra/node_modules/mysql2/lib/commands/client_handshake.js:93:40)
    at ClientHandshake.execute (/home/juan/projects/panel-uifra/node_modules/mysql2/lib/commands/command.js:39:22)
    at PoolConnection.handlePacket (/home/juan/projects/panel-uifra/node_modules/mysql2/lib/connection.js:425:32)
    at PacketParser.onPacket (/home/juan/projects/panel-uifra/node_modules/mysql2/lib/connection.js:75:12)
    at PacketParser.executeStart (/home/juan/projects/panel-uifra/node_modules/mysql2/lib/packet_parser.js:75:16)

Hal anehnya adalah kesalahan ini hanya terjadi pada pengujian, ketika saya menjalankan server koneksi berhasil dibuat.

Sebuah solusi yang saya temukan adalah secara eksplisit mengatur encoder ke iconv-lite seperti ini:

import iconv from 'iconv-lite';
import encodings from 'iconv-lite/encodings';
iconv.encodings = encodings;

Tapi masalahnya di sini TypeScript menangkap saya karena properti encodings tidak didefinisikan dalam deklarasi tipe:

Properti 'encodings' tidak ada pada tipe.