feat: Add ResetCircuitBreaker helper
This commit is contained in:
@@ -307,6 +307,43 @@ func TestIsRetryableError(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestResetCircuitBreaker(t *testing.T) {
|
||||
cb := newCircuitBreaker()
|
||||
|
||||
// Record failures to open the circuit
|
||||
cb.recordFailure()
|
||||
cb.recordFailure()
|
||||
cb.recordFailure()
|
||||
|
||||
if cb.state != open {
|
||||
t.Errorf("expected state open after 3 failures, got %v", cb.state)
|
||||
}
|
||||
|
||||
// Reset the circuit breaker
|
||||
cb.ResetCircuitBreaker()
|
||||
|
||||
// Should be back to closed state
|
||||
if cb.state != closed {
|
||||
t.Errorf("expected state closed after reset, got %v", cb.state)
|
||||
}
|
||||
if cb.failures != 0 {
|
||||
t.Errorf("expected failures to be 0 after reset, got %d", cb.failures)
|
||||
}
|
||||
if cb.successes != 0 {
|
||||
t.Errorf("expected successes to be 0 after reset, got %d", cb.successes)
|
||||
}
|
||||
if cb.openSince != (time.Time{}) {
|
||||
t.Errorf("expected openSince to be zero after reset, got %v", cb.openSince)
|
||||
}
|
||||
|
||||
// After reset, allow() should return true (circuit closed)
|
||||
for i := 0; i < 10; i++ {
|
||||
if !cb.allow() {
|
||||
t.Fatalf("expected allow() to return true after reset, attempt %d", i)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Test Response parsing
|
||||
func TestResponseParsing(t *testing.T) {
|
||||
// Test with a valid JSON response
|
||||
|
||||
Reference in New Issue
Block a user