use specter::transport::h3::H3Client;
#[tokio::test]
async fn test_h3_unsupported_scheme_rfc9114() {
let client = H3Client::new();
let result = client
.send_request(
"http://example.com", "GET",
vec![],
None,
)
.await;
assert!(result.is_err(), "Expected error for http scheme, got Ok");
let err = result.err().unwrap().to_string();
println!("Got error: {}", err);
assert!(
err.contains("Unsupported scheme")
|| err.contains("only https")
|| err.contains("requires https")
);
}
#[tokio::test]
async fn test_h3_dns_resolution_failure() {
let client = H3Client::new();
let result = client
.send_request("https://domain.invalid", "GET", vec![], None)
.await;
assert!(result.is_err(), "Expected error for invalid domain, got Ok");
let err = result.err().unwrap().to_string();
println!("Got error: {}", err);
assert!(
err.to_lowercase().contains("failed to resolve")
|| err.to_lowercase().contains("no address found")
|| err.to_lowercase().contains("dns")
|| err.to_lowercase().contains("service not known"),
"Unexpected error message: {}",
err
);
}