fix(HTTP Request Node): Respect the original encoding of the incoming response (#9869)

This commit is contained in:
कारतोफ्फेलस्क्रिप्ट™
2024-07-11 17:03:52 +02:00
committed by GitHub
parent e84ab35c4a
commit 2d19aef540
9 changed files with 152 additions and 41 deletions

View File

@@ -1,17 +1,17 @@
import { Readable } from 'node:stream';
import { createGunzip } from 'node:zlib';
import { toBuffer } from '@/BinaryData/utils';
import { binaryToBuffer } from '@/BinaryData/utils';
describe('BinaryData/utils', () => {
describe('toBuffer', () => {
describe('binaryToBuffer', () => {
it('should handle buffer objects', async () => {
const body = Buffer.from('test');
expect((await toBuffer(body)).toString()).toEqual('test');
expect((await binaryToBuffer(body)).toString()).toEqual('test');
});
it('should handle valid uncompressed Readable streams', async () => {
const body = Readable.from(Buffer.from('test'));
expect((await toBuffer(body)).toString()).toEqual('test');
expect((await binaryToBuffer(body)).toString()).toEqual('test');
});
it('should handle valid compressed Readable streams', async () => {
@@ -19,13 +19,15 @@ describe('BinaryData/utils', () => {
const body = Readable.from(
Buffer.from('1f8b08000000000000032b492d2e01000c7e7fd804000000', 'hex'),
).pipe(gunzip);
expect((await toBuffer(body)).toString()).toEqual('test');
expect((await binaryToBuffer(body)).toString()).toEqual('test');
});
it('should throw on invalid compressed Readable streams', async () => {
const gunzip = createGunzip();
const body = Readable.from(Buffer.from('0001f8b080000000000000000', 'hex')).pipe(gunzip);
await expect(toBuffer(body)).rejects.toThrow(new Error('Failed to decompress response'));
await expect(binaryToBuffer(body)).rejects.toThrow(
new Error('Failed to decompress response'),
);
});
});
});