mirror of
https://github.com/openclaw/openclaw.git
synced 2026-02-09 05:19:32 +08:00
fix: clear tlon SSE connect timeout (#5926) (thanks @hclsys)
This commit is contained in:
@@ -25,6 +25,7 @@ Docs: https://docs.openclaw.ai
|
||||
- Telegram: restore draft streaming partials. (#5543) Thanks @obviyus.
|
||||
- Onboarding: friendlier Windows onboarding message. (#6242) Thanks @shanselman.
|
||||
- TUI: prevent crash when searching with digits in the model selector.
|
||||
- Tlon: clear SSE connection timeout on failed connect. (#5926) Thanks @hclsys.
|
||||
- Agents: wire before_tool_call plugin hook into tool execution. (#6570) Thanks @ryancnelson.
|
||||
- Browser: secure Chrome extension relay CDP sessions.
|
||||
- Docker: use container port for gateway command instead of host port. (#5110) Thanks @mise42.
|
||||
|
||||
@@ -37,4 +37,23 @@ describe("UrbitSSEClient", () => {
|
||||
path: "/dm/~zod",
|
||||
});
|
||||
});
|
||||
|
||||
it("clears the connection timeout when fetch fails", async () => {
|
||||
const timeoutId = 123 as unknown as NodeJS.Timeout;
|
||||
const setTimeoutSpy = vi.spyOn(global, "setTimeout").mockReturnValue(timeoutId);
|
||||
const clearTimeoutSpy = vi.spyOn(global, "clearTimeout");
|
||||
|
||||
mockFetch.mockRejectedValue(new Error("network down"));
|
||||
|
||||
const client = new UrbitSSEClient("https://example.com", "urbauth-~zod=123");
|
||||
|
||||
try {
|
||||
await expect(client.openStream()).rejects.toThrow("network down");
|
||||
expect(setTimeoutSpy).toHaveBeenCalled();
|
||||
expect(clearTimeoutSpy).toHaveBeenCalledWith(timeoutId);
|
||||
} finally {
|
||||
setTimeoutSpy.mockRestore();
|
||||
clearTimeoutSpy.mockRestore();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -179,11 +179,11 @@ export class UrbitSSEClient {
|
||||
Cookie: this.cookie,
|
||||
},
|
||||
signal: controller.signal,
|
||||
}).finally(() => {
|
||||
// Clear timeout once connection established (headers received) or on failure.
|
||||
clearTimeout(timeoutId);
|
||||
});
|
||||
|
||||
// Clear timeout once connection established (headers received)
|
||||
clearTimeout(timeoutId);
|
||||
|
||||
if (!response.ok) {
|
||||
throw new Error(`Stream connection failed: ${response.status}`);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user