fix(web-probe): reject empty analyze stdout contracts
This commit is contained in:
@@ -2607,13 +2607,24 @@ function webObserveAnalyzeCollectCommand(options: NodeWebProbeObserveOptions, fi
|
||||
}
|
||||
|
||||
function isWebObserveAnalyzeJsonContract(value: Record<string, unknown>): boolean {
|
||||
return value.ok === true
|
||||
|| value.ok === false
|
||||
|| typeof value.reportJsonPath === "string"
|
||||
|| typeof value.reportMdPath === "string"
|
||||
|| typeof value.error === "string"
|
||||
|| Object.keys(recordValue(value.analyzer)).length > 0
|
||||
|| Object.keys(recordValue(value.counts)).length > 0;
|
||||
const hasReportPath = typeof value.reportJsonPath === "string" || typeof value.reportMdPath === "string";
|
||||
const hasAnalyzer = Object.keys(recordValue(value.analyzer)).length > 0;
|
||||
const hasFindings = arrayRecordsValue(value.findings).length > 0 || arrayRecordsValue(value.archiveRedFindings).length > 0;
|
||||
const hasAnalyzeData = hasReportPath
|
||||
|| hasAnalyzer
|
||||
|| hasFindings
|
||||
|| Object.keys(recordValue(value.counts)).length > 0
|
||||
|| Object.keys(recordValue(value.sampleMetrics)).length > 0
|
||||
|| Object.keys(recordValue(value.requestRate)).length > 0
|
||||
|| Object.keys(recordValue(value.requestRateCurve)).length > 0
|
||||
|| Object.keys(recordValue(value.frontendPerformance)).length > 0
|
||||
|| Object.keys(recordValue(value.webPerformanceRuntimeDiagnostics)).length > 0
|
||||
|| Object.keys(recordValue(value.runtimeAlerts)).length > 0
|
||||
|| Object.keys(recordValue(value.archiveSummary)).length > 0
|
||||
|| Object.keys(recordValue(value.analysisWindow)).length > 0;
|
||||
const hasFailureData = typeof value.error === "string" || hasAnalyzer || hasFindings || hasReportPath;
|
||||
if (value.ok === false) return hasFailureData;
|
||||
return hasAnalyzeData;
|
||||
}
|
||||
|
||||
function compactWebObserveAnalyzePayloadForRaw(payload: Record<string, unknown>, compactRaw: boolean): Record<string, unknown> {
|
||||
|
||||
Reference in New Issue
Block a user