aboutsummaryrefslogtreecommitdiff
path: root/test/bun.js/fetch-gzip.test.ts
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-11-19 22:23:45 -0800
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-11-19 22:23:45 -0800
commite024116b776efc19b92d4be613c1449213690ca1 (patch)
tree8bdb40f057b24f2bc4d7cf83ad24793b6a543780 /test/bun.js/fetch-gzip.test.ts
parent79b6d4734a70c2024af5224b34a09d1ead7d6a4b (diff)
downloadbun-e024116b776efc19b92d4be613c1449213690ca1.tar.gz
bun-e024116b776efc19b92d4be613c1449213690ca1.tar.zst
bun-e024116b776efc19b92d4be613c1449213690ca1.zip
Add a couple more tests for redirects
Diffstat (limited to 'test/bun.js/fetch-gzip.test.ts')
-rw-r--r--test/bun.js/fetch-gzip.test.ts76
1 files changed, 76 insertions, 0 deletions
diff --git a/test/bun.js/fetch-gzip.test.ts b/test/bun.js/fetch-gzip.test.ts
index d2637121c..2cc795655 100644
--- a/test/bun.js/fetch-gzip.test.ts
+++ b/test/bun.js/fetch-gzip.test.ts
@@ -36,6 +36,82 @@ it("fetch() with a buffered gzip response works (one chunk)", async () => {
server.stop();
});
+it("fetch() with a redirect that returns a buffered gzip response works (one chunk)", async () => {
+ var server = Bun.serve({
+ port: 6020,
+
+ async fetch(req) {
+ if (req.url.endsWith("/redirect"))
+ return new Response(
+ await Bun.file(import.meta.dir + "/fixture.html.gz").arrayBuffer(),
+ {
+ headers: {
+ "Content-Encoding": "gzip",
+ "Content-Type": "text/html; charset=utf-8",
+ },
+ },
+ );
+
+ return Response.redirect("/redirect");
+ },
+ });
+
+ const res = await fetch(
+ `http://${server.hostname}:${server.port}/hey`,
+ {},
+ { verbose: true },
+ );
+ const arrayBuffer = await res.arrayBuffer();
+ expect(
+ new Buffer(arrayBuffer).equals(
+ new Buffer(
+ await Bun.file(import.meta.dir + "/fixture.html").arrayBuffer(),
+ ),
+ ),
+ ).toBe(true);
+ server.stop();
+});
+
+it("fetch() with a protocol-relative redirect that returns a buffered gzip response works (one chunk)", async () => {
+ const server = Bun.serve({
+ port: 5018,
+
+ async fetch(req, server) {
+ if (req.url.endsWith("/redirect"))
+ return new Response(
+ await Bun.file(import.meta.dir + "/fixture.html.gz").arrayBuffer(),
+ {
+ headers: {
+ "Content-Encoding": "gzip",
+ "Content-Type": "text/html; charset=utf-8",
+ },
+ },
+ );
+
+ return Response.redirect(`://${server.hostname}:${server.port}/redirect`);
+ },
+ });
+
+ const res = await fetch(
+ `http://${server.hostname}:${server.port}/hey`,
+ {},
+ { verbose: true },
+ );
+ expect(res.url).toBe(`http://${server.hostname}:${server.port}/redirect`);
+ expect(res.redirected).toBe(true);
+ expect(res.status).toBe(200);
+ const arrayBuffer = await res.arrayBuffer();
+ expect(
+ new Buffer(arrayBuffer).equals(
+ new Buffer(
+ await Bun.file(import.meta.dir + "/fixture.html").arrayBuffer(),
+ ),
+ ),
+ ).toBe(true);
+
+ server.stop();
+});
+
it("fetch() with a gzip response works (one chunk)", async () => {
var server = Bun.serve({
port: 6023,