refactor(client): make managed failure classification exhaustive #90
@@ -592,32 +592,6 @@ mod tests {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn classification_covers_every_failure_kind_except_other() {
|
|
||||||
let observed: Vec<_> = classification_cases()
|
|
||||||
.into_iter()
|
|
||||||
.map(|(error, _)| {
|
|
||||||
classify_client_error(ManagedTargetFailurePhase::Sending, &error).kind
|
|
||||||
})
|
|
||||||
.collect();
|
|
||||||
for kind in [
|
|
||||||
ManagedTargetFailureKind::Resolve,
|
|
||||||
ManagedTargetFailureKind::Socket,
|
|
||||||
ManagedTargetFailureKind::SocketOption,
|
|
||||||
ManagedTargetFailureKind::Protocol,
|
|
||||||
ManagedTargetFailureKind::Timeout,
|
|
||||||
ManagedTargetFailureKind::Configuration,
|
|
||||||
ManagedTargetFailureKind::ResourceExhausted,
|
|
||||||
ManagedTargetFailureKind::InvalidState,
|
|
||||||
] {
|
|
||||||
assert!(observed.contains(&kind), "no case classifies as {kind}");
|
|
||||||
}
|
|
||||||
assert!(
|
|
||||||
!observed.contains(&ManagedTargetFailureKind::Other),
|
|
||||||
"Other must remain a deliberate category, not a fallback"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn classification_preserves_the_reported_phase() {
|
fn classification_preserves_the_reported_phase() {
|
||||||
for phase in [
|
for phase in [
|
||||||
|
|||||||
Reference in new issue
Block a user