diff --git a/src/gateway/server.test.ts b/src/gateway/server.test.ts index 04aabf76e..3551d6784 100644 --- a/src/gateway/server.test.ts +++ b/src/gateway/server.test.ts @@ -656,6 +656,25 @@ describe("gateway server", () => { await expect(startGatewayServer(port)).rejects.toBeInstanceOf( GatewayLockError, ); + await expect(startGatewayServer(port)).rejects.toThrow( + /already listening/i, + ); blocker.close(); }); + + test("releases port after close", async () => { + const port = await getFreePort(); + const server = await startGatewayServer(port); + await server.close(); + + // If the port was released, another listener can bind immediately. + const probe = createServer(); + await new Promise((resolve, reject) => { + probe.once("error", reject); + probe.listen(port, "127.0.0.1", () => resolve()); + }); + await new Promise((resolve, reject) => + probe.close((err) => (err ? reject(err) : resolve())), + ); + }); });