test(core): add comprehensive RetryManager test suite#1159
Open
abueide wants to merge 4 commits intotapi/retry-managerfrom
Open
test(core): add comprehensive RetryManager test suite#1159abueide wants to merge 4 commits intotapi/retry-managerfrom
abueide wants to merge 4 commits intotapi/retry-managerfrom
Conversation
4 tasks
3371651 to
0c85b0f
Compare
ba89956 to
aac6169
Compare
0c85b0f to
8f21c88
Compare
aac6169 to
cf2abd2
Compare
2 tasks
8f21c88 to
225e64a
Compare
cf2abd2 to
23ae940
Compare
225e64a to
f51911b
Compare
23ae940 to
9f2575b
Compare
f51911b to
fcdc491
Compare
9f2575b to
6981059
Compare
Add 29 tests covering all RetryManager states and transitions: canRetry, handle429 rate limiting, handleTransientError backoff, reset, retry strategies (eager/lazy), autoFlush callbacks, and mixed error scenarios. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Updated test to verify that 429 now correctly overrides BACKING_OFF state rather than being silently ignored. The 429's retry-after takes precedence. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add test verifying 429 Retry-After overrides long transient backoff - Track RetryManager instances in autoFlush tests and destroy in afterEach to prevent timer leaks Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update log assertions for consolidated limit-exceeded message. Add tests for: RetryResult return values, jitter calculation, isPersistedStateValid clock skew detection, handle429(0) edge case, and strengthened assertions that verify behavioral state after clamping/rejection (not just log output). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fcdc491 to
a8c9435
Compare
6981059 to
c49e640
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
canRetry: READY/RATE_LIMITED/BACKING_OFF states, wait expiry transitions, disabled configshandle429: retry count, lazy consolidation, clamping, negative/zero retry-after, max count/duration limits withlimit_exceededreturn verification, 429-overrides-BACKING_OFF, Retry-After authorityhandleTransientError: retry count, exponential backoff, max backoff clamping, max count/duration limits withlimit_exceededreturn verificationreset: count and state resetretryStrategy: lazy (default), eager, applies to transient errorsautoFlush: timer fires, no-callback safety, clear on reset/destroy, timer replacementreturn values:undefinedwhen configs disabledjitter: additive jitter formula with non-zerojitterPercent, zero jitter adds no randomnessisPersistedStateValid: clock skew detection (firstFailureTime in future)mixed errors: 429 wait time takes precedence over shorter transient backoffPR 4 of 5 in the TAPI backoff/retry stack. Depends on #1158.
Test plan
🤖 Generated with Claude Code