1 use anyhow::Context;
2 use test_programs::p3::wasi::http::types::{Method, Scheme};
3
4 struct Component;
5
6 test_programs::p3::export!(Component);
7
8 impl test_programs::p3::exports::wasi::cli::run::Guest for Component {
run() -> Result<(), ()>9 async fn run() -> Result<(), ()> {
10 let addr = test_programs::p3::wasi::cli::environment::get_environment()
11 .into_iter()
12 .find_map(|(k, v)| k.eq("HTTP_SERVER").then_some(v))
13 .unwrap();
14 let res = test_programs::p3::http::request(
15 Method::Get,
16 Scheme::Http,
17 &addr,
18 "/get?some=arg&goes=here",
19 None,
20 None,
21 None,
22 None,
23 None,
24 )
25 .await
26 .context("/get")
27 .unwrap();
28
29 println!("{addr} /get: {res:?}");
30 assert_eq!(res.status, 200);
31 let method = res.header("x-wasmtime-test-method").unwrap();
32 assert_eq!(std::str::from_utf8(method).unwrap(), "GET");
33 let uri = res.header("x-wasmtime-test-uri").unwrap();
34 assert_eq!(
35 std::str::from_utf8(uri).unwrap(),
36 format!("/get?some=arg&goes=here")
37 );
38 assert_eq!(res.body, b"");
39 Ok(())
40 }
41 }
42
main()43 fn main() {}
44