mirror of
https://github.com/oven-sh/bun
synced 2026-02-09 10:28:47 +00:00
54 lines
1.5 KiB
TypeScript
54 lines
1.5 KiB
TypeScript
import { expect, test } from "bun:test";
|
|
import { once } from "node:events";
|
|
import { createServer } from "node:http";
|
|
import { createBrotliCompress, createDeflate, createGzip } from "node:zlib";
|
|
|
|
test.todo("content-encoding header is case-iNsENsITIve", async () => {
|
|
const contentCodings = "GZiP, bR";
|
|
const text = "Hello, World!";
|
|
|
|
await using server = createServer((req, res) => {
|
|
const gzip = createGzip();
|
|
const brotli = createBrotliCompress();
|
|
|
|
res.setHeader("Content-Encoding", contentCodings);
|
|
res.setHeader("Content-Type", "text/plain");
|
|
|
|
gzip.pipe(brotli).pipe(res);
|
|
|
|
gzip.write(text);
|
|
gzip.end();
|
|
}).listen(0);
|
|
|
|
await once(server, "listening");
|
|
|
|
const response = await fetch(`http://localhost:${server.address().port}`);
|
|
|
|
expect(await response.text()).toBe(text);
|
|
expect(response.headers.get("content-encoding")).toBe(contentCodings);
|
|
});
|
|
|
|
test.todo("response decompression according to content-encoding should be handled in a correct order", async () => {
|
|
const contentCodings = "deflate, gzip";
|
|
const text = "Hello, World!";
|
|
|
|
await using server = createServer((req, res) => {
|
|
const gzip = createGzip();
|
|
const deflate = createDeflate();
|
|
|
|
res.setHeader("Content-Encoding", contentCodings);
|
|
res.setHeader("Content-Type", "text/plain");
|
|
|
|
deflate.pipe(gzip).pipe(res);
|
|
|
|
deflate.write(text);
|
|
deflate.end();
|
|
}).listen(0);
|
|
|
|
await once(server, "listening");
|
|
|
|
const response = await fetch(`http://localhost:${server.address().port}`);
|
|
|
|
expect(await response.text()).toBe(text);
|
|
});
|