From 96b527b8df3c9e7e29c98a6a0d6876089b88bc09 Mon Sep 17 00:00:00 2001 From: Marvin Hagemeister Date: Thu, 4 Jul 2024 18:28:48 +0200 Subject: fix(node/http): don't throw on .address() before .listen() (#24432) It's perfectly valid to access `server.address()` before calling `.listen()`. Until a server actively listens on a socket Node will return `null` here, but we threw a "Cannot access property 'port' of undefined" instead. This was discovered when inspecting failures in Koa's test suite with Deno. --- tests/unit_node/http_test.ts | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'tests') diff --git a/tests/unit_node/http_test.ts b/tests/unit_node/http_test.ts index aeb92f129..0935aeac0 100644 --- a/tests/unit_node/http_test.ts +++ b/tests/unit_node/http_test.ts @@ -1251,3 +1251,8 @@ Deno.test("[node/http] http.request() post streaming body works", async () => { clearTimeout(timeout); assertEquals(server.listening, false); }); + +Deno.test("[node/http] Server.address() can be null", () => { + const server = http.createServer((_req, res) => res.end("it works")); + assertEquals(server.address(), null); +}); -- cgit v1.2.3