tweak: adjust retry check to be more defensive
This commit is contained in:
@@ -76,6 +76,7 @@ export namespace SessionRetry {
|
||||
return undefined
|
||||
}
|
||||
})
|
||||
try {
|
||||
if (!json || typeof json !== "object") return undefined
|
||||
const code = typeof json.code === "string" ? json.code : ""
|
||||
|
||||
@@ -95,5 +96,8 @@ export namespace SessionRetry {
|
||||
) {
|
||||
return "Provider Server Error"
|
||||
}
|
||||
} catch {
|
||||
return undefined
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -102,6 +102,12 @@ describe("session.retry.retryable", () => {
|
||||
expect(SessionRetry.retryable(error)).toBe("Provider Server Error")
|
||||
})
|
||||
|
||||
test("does not throw on numeric error codes", () => {
|
||||
const error = wrap(JSON.stringify({ type: "error", error: { code: 123 } }))
|
||||
const result = SessionRetry.retryable(error)
|
||||
expect(result).toBeUndefined()
|
||||
})
|
||||
|
||||
test("returns undefined for non-json message", () => {
|
||||
const error = wrap("not-json")
|
||||
expect(SessionRetry.retryable(error)).toBeUndefined()
|
||||
|
||||
Reference in New Issue
Block a user