summaryrefslogtreecommitdiff
path: root/tests/unit/serve_test.ts
diff options
context:
space:
mode:
authorMatt Mastracci <matthew@mastracci.com>2024-04-19 18:09:50 -0600
committerGitHub <noreply@github.com>2024-04-19 18:09:50 -0600
commit365e1f48f7059f94d4eeb8f5ba8b3949b686b355 (patch)
tree94016de6377130ba9acff9c725614c609fb3a38f /tests/unit/serve_test.ts
parent93a40c1c643873ca3199a8cb2a6f29f0ca5bab68 (diff)
feat(ext/http): Add `addr` to HttpServer (#23442)
Adds an `addr` field to `HttpServer` to simplify the pattern `Deno.serve({ onListen({ port } => listenPort = port })`. This becomes: `const server = Deno.serve({}); port = server.addr.port`. Changes: - Refactors `serve` overloads to split TLS out (in preparation for landing a place for the TLS SNI information) - Adds an `addr` field to `HttpServer` that matches the `addr` field of the corresponding `Deno.Listener`s.
Diffstat (limited to 'tests/unit/serve_test.ts')
-rw-r--r--tests/unit/serve_test.ts19
1 files changed, 12 insertions, 7 deletions
diff --git a/tests/unit/serve_test.ts b/tests/unit/serve_test.ts
index 9b2870ebd..048529ae9 100644
--- a/tests/unit/serve_test.ts
+++ b/tests/unit/serve_test.ts
@@ -43,7 +43,10 @@ function onListen(
}
async function makeServer(
- handler: (req: Request) => Response | Promise<Response>,
+ handler: (
+ req: Request,
+ info: Deno.ServeHandlerInfo,
+ ) => Response | Promise<Response>,
): Promise<
{
finished: Promise<void>;
@@ -432,7 +435,7 @@ Deno.test(async function httpServerRejectsOnAddrInUse() {
Deno.test({ permissions: { net: true } }, async function httpServerBasic() {
const ac = new AbortController();
const deferred = Promise.withResolvers<void>();
- const listeningDeferred = Promise.withResolvers<void>();
+ const listeningDeferred = Promise.withResolvers<Deno.NetAddr>();
const server = Deno.serve({
handler: async (request, { remoteAddr }) => {
@@ -447,11 +450,13 @@ Deno.test({ permissions: { net: true } }, async function httpServerBasic() {
},
port: servePort,
signal: ac.signal,
- onListen: onListen(listeningDeferred.resolve),
+ onListen: (addr) => listeningDeferred.resolve(addr),
onError: createOnErrorCb(ac),
});
- await listeningDeferred.promise;
+ const addr = await listeningDeferred.promise;
+ assertEquals(addr.hostname, server.addr.hostname);
+ assertEquals(addr.port, server.addr.port);
const resp = await fetch(`http://127.0.0.1:${servePort}/`, {
headers: { "connection": "close" },
});
@@ -472,7 +477,7 @@ Deno.test(
async function httpServerOnListener() {
const ac = new AbortController();
const deferred = Promise.withResolvers<void>();
- const listeningDeferred = Promise.withResolvers<void>();
+ const listeningDeferred = Promise.withResolvers();
const listener = Deno.listen({ port: servePort });
const server = serveHttpOnListener(
listener,
@@ -3812,7 +3817,7 @@ Deno.test(
permissions: { run: true, read: true, write: true },
},
async function httpServerUnixDomainSocket() {
- const { promise, resolve } = Promise.withResolvers<{ path: string }>();
+ const { promise, resolve } = Promise.withResolvers<Deno.UnixAddr>();
const ac = new AbortController();
const filePath = tmpUnixSocketPath();
const server = Deno.serve(
@@ -3830,7 +3835,7 @@ Deno.test(
},
);
- assertEquals(await promise, { path: filePath });
+ assertEquals((await promise).path, filePath);
assertEquals(
"hello world!",
await curlRequest(["--unix-socket", filePath, "http://localhost"]),