/** * Circuit Breaker Consolidation Tests - GREEN Phase * * Task: postgres-eykz - Consolidate circuit breakers to shared package * * This file tests the unified circuit breaker implementation that consolidates * all previous duplicate implementations into a single shared module. * * ## Duplicate Implementations Found: * * 1. packages/shared/src/circuit-breaker.ts * - Most complete implementation * - Uses string literal union type: 'CLOSED' | 'OPEN' | 'HALF_OPEN' * - Supports multi-instance tracking (per DO) * - Has exponential backoff * - Has metrics collector integration * - Has DOCircuitBreakerWrapper for DO stubs * - Re-exports CircuitOpenError from errors.ts * * 2. packages/postgres.do/src/cdc/circuit-breaker.ts * - CDC-specific implementation * - Uses enum: CircuitState.CLOSED, etc. * - Single-instance (no multi-tenant tracking) * - Uses CDCCircuitOpenError (different error class) * - Has executeWithRetry method * - Uses timer-based recovery (setTimeout) * - Has destroy() method for cleanup * * 3. packages/postgres/src/routing/circuit-breaker.ts * - Nearly identical to shared implementation * - Copy-pasted with minor differences * - Has its own CircuitOpenError class * - Missing re-export from errors module * * ## Key Differences to Reconcile: * * - State type: string literals vs enum * - Error class: CircuitOpenError vs CDCCircuitOpenError * - Instance tracking: multi-instance vs single-instance * - Recovery: passive (on getState check) vs active (setTimeout) * - API: execute(instanceId, fn) vs execute(fn) * - Retry: none vs executeWithRetry * - Cleanup: none vs destroy() * * ## Unified API Requirements: * * The consolidated circuit breaker should: * 1. Support both single-instance and multi-instance modes * 2. Use string literal union for better TypeScript inference * 3. Have a single CircuitOpenError class in shared/errors.ts * 4. Support both passive and active recovery * 5. Include retry functionality * 6. Have proper cleanup/destroy method * 7. Be generic enough for CDC, routing, and DO use cases */ export {}; //# sourceMappingURL=circuit-breaker-consolidation.test.d.ts.map