test: stabilize anthropic stream abort smoke · openclaw/openclaw@06a5469
steipete
·
2026-05-03
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -62,8 +62,17 @@ describeLive("anthropic transport stream live", () => {
|
62 | 62 | const abortReason = new Error("live anthropic stream abort"); |
63 | 63 | let requestBody = ""; |
64 | 64 | let requestBodyPromise: Promise<string> | undefined; |
| 65 | +let responseClosed = false; |
| 66 | +let resolveResponseClosed: (() => void) | undefined; |
| 67 | +const responseClosedPromise = new Promise<void>((resolve) => { |
| 68 | +resolveResponseClosed = resolve; |
| 69 | +}); |
65 | 70 | |
66 | 71 | const server = http.createServer((request, response) => { |
| 72 | +response.on("close", () => { |
| 73 | +responseClosed = true; |
| 74 | +resolveResponseClosed?.(); |
| 75 | +}); |
67 | 76 | requestBodyPromise = readRequestBody(request).then((body) => { |
68 | 77 | requestBody = body; |
69 | 78 | response.writeHead(200, { |
@@ -109,9 +118,11 @@ describeLive("anthropic transport stream live", () => {
|
109 | 118 | if (result === timedOut) { |
110 | 119 | throw new Error("Anthropic live SSE stream did not abort within 1000ms"); |
111 | 120 | } |
| 121 | +await Promise.race([responseClosedPromise, delay(1_000, undefined)]); |
112 | 122 | |
113 | 123 | expect(result.stopReason).toBe("aborted"); |
114 | 124 | expect(result.errorMessage).toBe("live anthropic stream abort"); |
| 125 | +expect(responseClosed).toBe(true); |
115 | 126 | const capturedRequestBody = requestBodyPromise |
116 | 127 | ? await Promise.race([requestBodyPromise, delay(500, requestBody)]) |
117 | 128 | : requestBody; |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。