core tests
This commit is contained in:
54
core/health/use-cases/GetConnectionStatusUseCase.test.ts
Normal file
54
core/health/use-cases/GetConnectionStatusUseCase.test.ts
Normal file
@@ -0,0 +1,54 @@
|
||||
import { describe, it, expect, vi } from 'vitest';
|
||||
import { GetConnectionStatusUseCase, GetConnectionStatusUseCasePorts } from './GetConnectionStatusUseCase';
|
||||
import { HealthCheckQuery, ConnectionHealth } from '../ports/HealthCheckQuery';
|
||||
|
||||
describe('GetConnectionStatusUseCase', () => {
|
||||
it('should return connection status and metrics from the health check adapter', async () => {
|
||||
// Arrange
|
||||
const mockHealth: ConnectionHealth = {
|
||||
status: 'connected',
|
||||
lastCheck: new Date('2024-01-01T10:00:00Z'),
|
||||
lastSuccess: new Date('2024-01-01T10:00:00Z'),
|
||||
lastFailure: null,
|
||||
consecutiveFailures: 0,
|
||||
totalRequests: 100,
|
||||
successfulRequests: 99,
|
||||
failedRequests: 1,
|
||||
averageResponseTime: 150,
|
||||
};
|
||||
const mockReliability = 0.99;
|
||||
|
||||
const mockHealthCheckAdapter = {
|
||||
getHealth: vi.fn().mockReturnValue(mockHealth),
|
||||
getReliability: vi.fn().mockReturnValue(mockReliability),
|
||||
performHealthCheck: vi.fn(),
|
||||
getStatus: vi.fn(),
|
||||
isAvailable: vi.fn(),
|
||||
} as unknown as HealthCheckQuery;
|
||||
|
||||
const ports: GetConnectionStatusUseCasePorts = {
|
||||
healthCheckAdapter: mockHealthCheckAdapter,
|
||||
};
|
||||
|
||||
const useCase = new GetConnectionStatusUseCase(ports);
|
||||
|
||||
// Act
|
||||
const result = await useCase.execute();
|
||||
|
||||
// Assert
|
||||
expect(mockHealthCheckAdapter.getHealth).toHaveBeenCalled();
|
||||
expect(mockHealthCheckAdapter.getReliability).toHaveBeenCalled();
|
||||
expect(result).toEqual({
|
||||
status: 'connected',
|
||||
reliability: 0.99,
|
||||
totalRequests: 100,
|
||||
successfulRequests: 99,
|
||||
failedRequests: 1,
|
||||
consecutiveFailures: 0,
|
||||
averageResponseTime: 150,
|
||||
lastCheck: mockHealth.lastCheck,
|
||||
lastSuccess: mockHealth.lastSuccess,
|
||||
lastFailure: null,
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user