diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/unit/serve_test.ts | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/tests/unit/serve_test.ts b/tests/unit/serve_test.ts index 827a094dc..ea5a7d3ef 100644 --- a/tests/unit/serve_test.ts +++ b/tests/unit/serve_test.ts @@ -861,6 +861,88 @@ Deno.test( }, ); +Deno.test({ permissions: { net: true } }, async function validPortString() { + const server = Deno.serve({ + handler: (_request) => new Response(), + port: "4501" as unknown as number, + }); + assertEquals(server.addr.transport, "tcp"); + assertEquals(server.addr.port, 4501); + await server.shutdown(); +}); + +Deno.test({ permissions: { net: true } }, function invalidPortFloat() { + assertThrows( + () => + Deno.serve({ + handler: (_request) => new Response(), + port: 45.1, + }), + TypeError, + `Invalid port: 45.1`, + ); +}); + +Deno.test({ permissions: { net: true } }, function invalidPortNaN() { + assertThrows( + () => + Deno.serve({ + handler: (_request) => new Response(), + port: NaN, + }), + TypeError, + `Invalid port: NaN`, + ); +}); + +Deno.test({ permissions: { net: true } }, function invalidPortString() { + assertThrows( + () => + Deno.serve({ + handler: (_request) => new Response(), + port: "some-non-number-string" as unknown as number, + }), + TypeError, + `Invalid port: 'some-non-number-string'`, + ); +}); + +Deno.test({ permissions: { net: true } }, function invalidPortTooSmall() { + assertThrows( + () => + Deno.serve({ + handler: (_request) => new Response(), + port: -111, + }), + RangeError, + `Invalid port (out of range): -111`, + ); +}); + +Deno.test({ permissions: { net: true } }, function invalidPortTooLarge() { + assertThrows( + () => + Deno.serve({ + handler: (_request) => new Response(), + port: 100000, + }), + RangeError, + `Invalid port (out of range): 100000`, + ); +}); + +Deno.test({ permissions: { net: true } }, function invalidPortType() { + assertThrows( + () => + Deno.serve({ + handler: (_request) => new Response(), + port: true as unknown as number, + }), + TypeError, + `Invalid port (expected number): true`, + ); +}); + function createUrlTest( name: string, methodAndPath: string, |