From cb41d77d2aa9ae3b4d938167d86679a429bee4fe Mon Sep 17 00:00:00 2001 From: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> Date: Tue, 8 Nov 2022 22:27:22 -0800 Subject: [PATCH] Fixes #1426 --- src/bun.js/webcore/response.zig | 5 ++++- test/bun.js/serve.test.ts | 21 +++++++++++++++++++-- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/bun.js/webcore/response.zig b/src/bun.js/webcore/response.zig index ee62d518b6..0bb776d6ce 100644 --- a/src/bun.js/webcore/response.zig +++ b/src/bun.js/webcore/response.zig @@ -5187,7 +5187,7 @@ pub const Request = struct { }; } - pub fn writeFormat(this: *const Request, formatter: *JSC.Formatter, writer: anytype, comptime enable_ansi_colors: bool) !void { + pub fn writeFormat(this: *Request, formatter: *JSC.Formatter, writer: anytype, comptime enable_ansi_colors: bool) !void { const Writer = @TypeOf(writer); try formatter.writeIndent(Writer, writer); try writer.print("Request ({}) {{\n", .{bun.fmt.size(this.body.slice().len)}); @@ -5204,7 +5204,9 @@ pub const Request = struct { try formatter.writeIndent(Writer, writer); try writer.writeAll("url: \""); + try this.ensureURL(); try writer.print(comptime Output.prettyFmt("{s}", enable_ansi_colors), .{this.url}); + try writer.writeAll("\""); if (this.body == .Blob) { try writer.writeAll("\n"); @@ -5376,6 +5378,7 @@ pub const Request = struct { return 0; } + pub fn ensureURL(this: *Request) !void { if (this.url.len > 0) return; diff --git a/test/bun.js/serve.test.ts b/test/bun.js/serve.test.ts index 64634b8410..9f351e93d5 100644 --- a/test/bun.js/serve.test.ts +++ b/test/bun.js/serve.test.ts @@ -26,7 +26,24 @@ it("should work for a file", async () => { }, }); const response = await fetch(`http://${server.hostname}:${server.port}`); - console.log(response); + expect(await response.text()).toBe(textToExpect); + server.stop(); +}); + +it("request.url should log successfully", async () => { + const fixture = resolve(import.meta.dir, "./fetch.js.txt"); + const textToExpect = readFileSync(fixture, "utf-8"); + var expected; + const server = serve({ + port: port++, + fetch(req) { + expect(Bun.inspect(req).includes(expected)).toBe(true); + return new Response(file(fixture)); + }, + }); + expected = `http://${server.hostname}:${server.port}/helloooo`; + const response = await fetch(expected); + expect(response.url).toBe(expected); expect(await response.text()).toBe(textToExpect); server.stop(); }); @@ -206,7 +223,7 @@ describe("streaming", () => { var server; try { var pass = false; - var err = { name: '', message: '' }; + var err = { name: "", message: "" }; server = serve({ port: port++, development: false,