1 use test_programs::p3::wasi::http::types::{ErrorCode, Method, Scheme};
2 
3 struct Component;
4 
5 test_programs::p3::export!(Component);
6 
7 impl test_programs::p3::exports::wasi::cli::run::Guest for Component {
run() -> Result<(), ()>8     async fn run() -> Result<(), ()> {
9         let addr = test_programs::p3::wasi::cli::environment::get_environment()
10             .into_iter()
11             .find_map(|(k, v)| k.eq("HTTP_SERVER").then_some(v))
12             .unwrap();
13         let res = test_programs::p3::http::request(
14             Method::Connect,
15             Scheme::Http,
16             &addr,
17             "/",
18             None,
19             Some(&[]),
20             None,
21             None,
22             None,
23         )
24         .await;
25 
26         assert!(matches!(
27             res.unwrap_err()
28                 .downcast::<ErrorCode>()
29                 .expect("expected a wasi-http ErrorCode"),
30             ErrorCode::HttpProtocolError,
31         ));
32         Ok(())
33     }
34 }
35 
main()36 fn main() {}
37