






















@@ -16,7 +16,8 @@ const WEBSOCKET_CLOSE_GRACE_MS = 1_000;
1616const WEBSOCKET_CLOSE_FORCE_CONTINUE_MS = 250;
1717const HTTP_CLOSE_GRACE_MS = 1_000;
1818const HTTP_CLOSE_FORCE_WAIT_MS = 5_000;
19-const GATEWAY_LIFECYCLE_HOOK_TIMEOUT_MS = 1_000;
19+const GATEWAY_SHUTDOWN_HOOK_TIMEOUT_MS = 5_000;
20+const GATEWAY_PRE_RESTART_HOOK_TIMEOUT_MS = 10_000;
20212122vi.mock("../channels/plugins/index.js", async () => ({
2223 ...(await vi.importActual<typeof import("../channels/plugins/index.js")>(
@@ -181,14 +182,14 @@ describe("createGatewayCloseHandler", () => {
181182);
182183183184const closePromise = close({ reason: "test shutdown" });
184-await vi.advanceTimersByTimeAsync(GATEWAY_LIFECYCLE_HOOK_TIMEOUT_MS);
185+await vi.advanceTimersByTimeAsync(GATEWAY_SHUTDOWN_HOOK_TIMEOUT_MS);
185186const result = await closePromise;
186187187188expect(result.warnings).toContain("gateway:shutdown");
188189expect(stopTaskRegistryMaintenance).toHaveBeenCalledTimes(1);
189190expect(
190191mocks.logWarn.mock.calls.some(([message]) =>
191-String(message).includes("gateway:shutdown hook timed out after 1000ms"),
192+String(message).includes("gateway:shutdown hook timed out after 5000ms"),
192193),
193194).toBe(true);
194195});
@@ -265,11 +266,16 @@ describe("createGatewayCloseHandler", () => {
265266reason: "test restart",
266267restartExpectedMs: 123,
267268});
268-await vi.advanceTimersByTimeAsync(GATEWAY_LIFECYCLE_HOOK_TIMEOUT_MS);
269+await vi.advanceTimersByTimeAsync(GATEWAY_PRE_RESTART_HOOK_TIMEOUT_MS);
269270const result = await closePromise;
270271271272expect(result.warnings).toContain("gateway:pre-restart");
272273expect(mocks.triggerInternalHook).toHaveBeenCalledTimes(2);
274+expect(
275+mocks.logWarn.mock.calls.some(([message]) =>
276+String(message).includes("gateway:pre-restart hook timed out after 10000ms"),
277+),
278+).toBe(true);
273279});
274280275281it("records subsystem shutdown warnings without aborting later cleanup", async () => {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。