test(gateway): cover port lock guard
This commit is contained in:
@@ -656,6 +656,25 @@ describe("gateway server", () => {
|
|||||||
await expect(startGatewayServer(port)).rejects.toBeInstanceOf(
|
await expect(startGatewayServer(port)).rejects.toBeInstanceOf(
|
||||||
GatewayLockError,
|
GatewayLockError,
|
||||||
);
|
);
|
||||||
|
await expect(startGatewayServer(port)).rejects.toThrow(
|
||||||
|
/already listening/i,
|
||||||
|
);
|
||||||
blocker.close();
|
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<void>((resolve, reject) => {
|
||||||
|
probe.once("error", reject);
|
||||||
|
probe.listen(port, "127.0.0.1", () => resolve());
|
||||||
|
});
|
||||||
|
await new Promise<void>((resolve, reject) =>
|
||||||
|
probe.close((err) => (err ? reject(err) : resolve())),
|
||||||
|
);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user