Skip to content

Commit f778c68

Browse files
committed
test: add additional test cases
1 parent 353532b commit f778c68

1 file changed

Lines changed: 24 additions & 0 deletions

File tree

packages/opencode/test/session/retry.test.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,30 @@ describe("session.retry.retryable", () => {
230230
expect(retryable).toBeDefined()
231231
expect(retryable).toBe("Response decompression failed")
232232
})
233+
234+
test("returns upsell message for FreeUsageLimitError in response body", () => {
235+
const error = new MessageV2.APIError({
236+
message: "Usage limit exceeded",
237+
isRetryable: true,
238+
responseBody: '{"error":{"type":"FreeUsageLimitError"}}',
239+
}).toObject() as MessageV2.APIError
240+
241+
expect(SessionRetry.retryable(error)).toBe(SessionRetry.GO_UPSELL_MESSAGE)
242+
})
243+
244+
test("returns overloaded message when APIError message includes Overloaded", () => {
245+
const error = new MessageV2.APIError({
246+
message: "Server is Overloaded, try again later",
247+
isRetryable: true,
248+
}).toObject() as MessageV2.APIError
249+
250+
expect(SessionRetry.retryable(error)).toBe("Provider is overloaded")
251+
})
252+
253+
test("maps rate_limit error code in nested json", () => {
254+
const error = wrap(JSON.stringify({ type: "error", error: { code: "rate_limit_exceeded" } }))
255+
expect(SessionRetry.retryable(error)).toBe("Rate Limited")
256+
})
233257
})
234258

235259
describe("session.message-v2.fromError", () => {

0 commit comments

Comments
 (0)