chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
import test from "node:test";
|
||||
import assert from "node:assert/strict";
|
||||
|
||||
const { isClientDisconnectError } = await import("../../open-sse/utils/streamHandler.ts");
|
||||
|
||||
test("client disconnect: AbortError is a client disconnect, not a provider failure", () => {
|
||||
const err = new Error("aborted");
|
||||
err.name = "AbortError";
|
||||
assert.equal(isClientDisconnectError(err), true);
|
||||
});
|
||||
|
||||
test("client disconnect: ResponseAborted is a client disconnect", () => {
|
||||
const err = new Error("The response was aborted");
|
||||
err.name = "ResponseAborted";
|
||||
assert.equal(isClientDisconnectError(err), true);
|
||||
});
|
||||
|
||||
test("client disconnect: 'Controller is already closed' TypeError is a client disconnect", () => {
|
||||
// Thrown when OmniRoute enqueues into a response stream the client already closed.
|
||||
// name is "TypeError", so this must be matched by message, not name.
|
||||
const err = new TypeError("Invalid state: Controller is already closed");
|
||||
assert.equal(isClientDisconnectError(err), true);
|
||||
});
|
||||
|
||||
test("client disconnect: a real provider 502/500 is NOT a client disconnect", () => {
|
||||
const err = Object.assign(new Error("Upstream stream failed"), { statusCode: 502 });
|
||||
assert.equal(isClientDisconnectError(err), false);
|
||||
});
|
||||
|
||||
test("client disconnect: a rate-limit (429) error is NOT a client disconnect", () => {
|
||||
const err = Object.assign(new Error("rate_limit_error"), { statusCode: 429 });
|
||||
assert.equal(isClientDisconnectError(err), false);
|
||||
});
|
||||
|
||||
test("client disconnect: null / string / plain object are NOT client disconnects", () => {
|
||||
assert.equal(isClientDisconnectError(null), false);
|
||||
assert.equal(isClientDisconnectError(undefined), false);
|
||||
assert.equal(isClientDisconnectError("Controller is already closed"), false);
|
||||
assert.equal(isClientDisconnectError({}), false);
|
||||
});
|
||||
Reference in New Issue
Block a user