refactor(client): make managed failure classification exhaustive #90

Merged
Lochnair merged 2 commits from refactor/exhaustive-client-failures into main 2026-08-15 02:49:37 +00:00
Showing only changes of commit 665f839333 - Show all commits
-26
View File
2
@@ -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 [