fetch-h2-br
Version:
🥐 Brotli decoder to fetch-h2-br
65 lines • 2.69 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
require("mocha");
const chai_1 = require("chai");
const get_stream_1 = require("get-stream");
const iltorb_1 = require("iltorb");
const server_1 = require("fetch-h2/dist/test/lib/server");
const fetch_h2_1 = require("fetch-h2");
const _1 = require("../../");
afterEach(fetch_h2_1.disconnectAll);
function ensureStatusSuccess(response) {
if (response.status < 200 || response.status >= 300)
throw new Error("Status not 2xx");
return response;
}
describe('basic', () => {
it('should accept brotli but decode gzip', async () => {
const { server, port } = await server_1.makeServer();
const host = 'localhost';
const testData = { foo: "bar" };
const { fetch, disconnectAll } = fetch_h2_1.context({ decoders: [_1.default()] });
const response = ensureStatusSuccess(await fetch(`http://localhost:${port}/compressed/gzip`, {
method: 'POST',
json: testData,
}));
const stream = await response.readable();
const data = await get_stream_1.buffer(stream);
chai_1.expect(JSON.parse(data.toString())).to.deep.equal(testData);
chai_1.expect(response.headers.get('content-encoding'))
.to.equal('gzip');
await disconnectAll();
await server.shutdown();
});
it('should accept and decode brotli', async () => {
const matchers = [
({ path, stream, headers }) => {
if (path !== '/compressed-br')
return false;
const responseHeaders = {
':status': 200,
'content-encoding': 'br',
};
stream.respond(responseHeaders);
stream.pipe(iltorb_1.compressStream()).pipe(stream);
return true;
}
];
const { server, port } = await server_1.makeServer({ matchers });
const host = 'localhost';
const testData = { foo: "bar" };
const { fetch, disconnectAll } = fetch_h2_1.context({ decoders: [_1.default()] });
const response = ensureStatusSuccess(await fetch(`http://localhost:${port}/compressed-br`, {
method: 'POST',
json: testData,
}));
const stream = await response.readable();
const data = await get_stream_1.buffer(stream);
chai_1.expect(JSON.parse(data.toString())).to.deep.equal(testData);
chai_1.expect(response.headers.get('content-encoding'))
.to.equal('br');
await disconnectAll();
await server.shutdown();
});
});
//# sourceMappingURL=index.js.map