( value: unknown, label = 'FailureBlock', )
| 100 | } |
| 101 | |
| 102 | function validateFailureBlock( |
| 103 | value: unknown, |
| 104 | label = 'FailureBlock', |
| 105 | ): asserts value is CliFailureBlock { |
| 106 | expect(value, `${label}: must be an object`).toBeTypeOf('object'); |
| 107 | expect(value, `${label}: not null`).not.toBeNull(); |
| 108 | const obj = value as Record<string, unknown>; |
| 109 | expectRequired(obj, FAILURE_BLOCK_REQUIRED, label); |
| 110 | expectKeysMatch(obj, new Set(FAILURE_BLOCK_REQUIRED), label); |
| 111 | expectStringOrNull(obj.rootCauseHypothesis, `${label}.rootCauseHypothesis`); |
| 112 | validateFixTarget(obj.recommendedFixTarget, `${label}.recommendedFixTarget`); |
| 113 | expect(Array.isArray(obj.evidence), `${label}.evidence`).toBe(true); |
| 114 | for (const [i, ev] of (obj.evidence as unknown[]).entries()) { |
| 115 | validateEvidence(ev, `${label}.evidence[${i}]`); |
| 116 | } |
| 117 | } |
| 118 | |
| 119 | function validateFailureContext( |
| 120 | value: unknown, |
no test coverage detected