diff --git a/src/__tests__/Utils/unified-session.test.ts b/src/__tests__/Utils/unified-session.test.ts index 3f3a17b9..4c3ee642 100644 --- a/src/__tests__/Utils/unified-session.test.ts +++ b/src/__tests__/Utils/unified-session.test.ts @@ -29,8 +29,7 @@ const TimeMs = { jest.mock('../../Utils/prometheus-metrics.js', () => ({ metrics: { socketEvents: { inc: jest.fn() }, - errors: { inc: jest.fn() }, - circuitBreakerTrips: { inc: jest.fn() } + errors: { inc: jest.fn() } } })) @@ -59,7 +58,6 @@ describe('UnifiedSessionManager', () => { manager = createUnifiedSessionManager({ enabled: true, logger: mockLogger as any, - enableCircuitBreaker: false, // Disable for simpler testing sendNode: mockSendNode }) }) @@ -356,7 +354,11 @@ describe('shouldEnableUnifiedSession', () => { }) }) -describe('UnifiedSessionManager with CircuitBreaker', () => { +describe('UnifiedSessionManager — non-critical send semantics', () => { + // The previous "with CircuitBreaker" suite is gone — telemetry no longer + // uses a circuit breaker. Verify equivalent behavior still holds: + // failures are swallowed (telemetry is non-critical) and don't propagate. + let manager: UnifiedSessionManager let mockSendNode: MockSendNode @@ -366,7 +368,6 @@ describe('UnifiedSessionManager with CircuitBreaker', () => { manager = createUnifiedSessionManager({ enabled: true, logger: createMockLogger() as any, - enableCircuitBreaker: true, sendNode: mockSendNode }) }) @@ -375,24 +376,13 @@ describe('UnifiedSessionManager with CircuitBreaker', () => { manager.destroy() }) - it('should work with circuit breaker enabled', async () => { + it('should send telemetry once per call', async () => { await manager.send('login') expect(mockSendNode).toHaveBeenCalledTimes(1) }) - it('should handle circuit breaker failures gracefully', async () => { - // Make send fail multiple times to trigger circuit breaker - let callCount = 0 - mockSendNode.mockImplementation(async () => { - callCount++ - if (callCount <= 3) { - throw new Error(`Fail ${callCount}`) - } - }) - - // These should not throw even with failures - await expect(manager.send('login')).resolves.toBeUndefined() - await expect(manager.send('login')).resolves.toBeUndefined() + it('should swallow send failures gracefully (telemetry is non-critical)', async () => { + mockSendNode.mockRejectedValueOnce(new Error('boom')) await expect(manager.send('login')).resolves.toBeUndefined() }) })