chore: normalize test-server health governance

This commit is contained in:
2026-05-21 14:21:27 +08:00
parent 3b67df19e7
commit d79c11fb15
5 changed files with 96 additions and 6 deletions
+32
View File
@@ -0,0 +1,32 @@
export type HealthStatus = 'ok' | 'degraded' | 'unhealthy';
export interface HealthInputs {
dbOk: boolean;
redisStatus: string;
pansouStatus: string;
videoParserStatus: string;
}
export interface HealthOptions {
videoParserRequired?: boolean;
}
export function computeOverallHealth(
{ dbOk, redisStatus, pansouStatus, videoParserStatus }: HealthInputs,
options: HealthOptions = {},
): HealthStatus {
const videoParserRequired = options.videoParserRequired ?? false;
if (dbOk && redisStatus === 'connected' && pansouStatus === 'ok') {
if (!videoParserRequired || videoParserStatus === 'ok') {
return 'ok';
}
return 'degraded';
}
if (dbOk && redisStatus !== 'unknown' && pansouStatus !== 'unreachable') {
return 'degraded';
}
return 'unhealthy';
}