integration tests
This commit is contained in:
80
core/health/ports/HealthEventPublisher.ts
Normal file
80
core/health/ports/HealthEventPublisher.ts
Normal file
@@ -0,0 +1,80 @@
|
||||
/**
|
||||
* Health Event Publisher Port
|
||||
*
|
||||
* Defines the interface for publishing health-related events.
|
||||
* This port is implemented by adapters that can publish events.
|
||||
*/
|
||||
|
||||
export interface HealthEventPublisher {
|
||||
/**
|
||||
* Publish a health check completed event
|
||||
*/
|
||||
publishHealthCheckCompleted(event: HealthCheckCompletedEvent): Promise<void>;
|
||||
|
||||
/**
|
||||
* Publish a health check failed event
|
||||
*/
|
||||
publishHealthCheckFailed(event: HealthCheckFailedEvent): Promise<void>;
|
||||
|
||||
/**
|
||||
* Publish a health check timeout event
|
||||
*/
|
||||
publishHealthCheckTimeout(event: HealthCheckTimeoutEvent): Promise<void>;
|
||||
|
||||
/**
|
||||
* Publish a connected event
|
||||
*/
|
||||
publishConnected(event: ConnectedEvent): Promise<void>;
|
||||
|
||||
/**
|
||||
* Publish a disconnected event
|
||||
*/
|
||||
publishDisconnected(event: DisconnectedEvent): Promise<void>;
|
||||
|
||||
/**
|
||||
* Publish a degraded event
|
||||
*/
|
||||
publishDegraded(event: DegradedEvent): Promise<void>;
|
||||
|
||||
/**
|
||||
* Publish a checking event
|
||||
*/
|
||||
publishChecking(event: CheckingEvent): Promise<void>;
|
||||
}
|
||||
|
||||
export interface HealthCheckCompletedEvent {
|
||||
healthy: boolean;
|
||||
responseTime: number;
|
||||
timestamp: Date;
|
||||
endpoint?: string;
|
||||
}
|
||||
|
||||
export interface HealthCheckFailedEvent {
|
||||
error: string;
|
||||
timestamp: Date;
|
||||
endpoint?: string;
|
||||
}
|
||||
|
||||
export interface HealthCheckTimeoutEvent {
|
||||
timestamp: Date;
|
||||
endpoint?: string;
|
||||
}
|
||||
|
||||
export interface ConnectedEvent {
|
||||
timestamp: Date;
|
||||
responseTime: number;
|
||||
}
|
||||
|
||||
export interface DisconnectedEvent {
|
||||
timestamp: Date;
|
||||
consecutiveFailures: number;
|
||||
}
|
||||
|
||||
export interface DegradedEvent {
|
||||
timestamp: Date;
|
||||
reliability: number;
|
||||
}
|
||||
|
||||
export interface CheckingEvent {
|
||||
timestamp: Date;
|
||||
}
|
||||
Reference in New Issue
Block a user