diff --git a/Cargo.lock b/Cargo.lock index 9944c80..fd27897 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -940,9 +940,9 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "potential_utf" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" dependencies = [ "zerovec", ] @@ -1333,7 +1333,7 @@ dependencies = [ [[package]] name = "testangel-engine" version = "1.1.0" -source = "git+https://github.com/AngelSuite/TestAngel?branch=next#ec398ade5ef64cd5a494798044f1b6ba18b71786" +source = "git+https://github.com/AngelSuite/TestAngel?branch=next#e85250830aaa0fdd4e4ee29e443ba8cda9e603a0" dependencies = [ "dynamic-plugin", "getset", @@ -1345,7 +1345,7 @@ dependencies = [ [[package]] name = "testangel-engine-macros" version = "1.1.0" -source = "git+https://github.com/AngelSuite/TestAngel?branch=next#ec398ade5ef64cd5a494798044f1b6ba18b71786" +source = "git+https://github.com/AngelSuite/TestAngel?branch=next#e85250830aaa0fdd4e4ee29e443ba8cda9e603a0" dependencies = [ "heck", "proc-macro-error2", @@ -1356,7 +1356,7 @@ dependencies = [ [[package]] name = "testangel-http" -version = "0.1.0" +version = "0.1.1" dependencies = [ "dynamic-plugin", "parking_lot", @@ -1367,7 +1367,7 @@ dependencies = [ [[package]] name = "testangel-ipc" version = "3.1.0" -source = "git+https://github.com/AngelSuite/TestAngel?branch=next#ec398ade5ef64cd5a494798044f1b6ba18b71786" +source = "git+https://github.com/AngelSuite/TestAngel?branch=next#e85250830aaa0fdd4e4ee29e443ba8cda9e603a0" dependencies = [ "bitflags", "cbindgen", diff --git a/Cargo.toml b/Cargo.toml index 02c78d5..acc607f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "testangel-http" -version = "0.1.0" +version = "0.1.1" edition = "2024" [lib] diff --git a/src/http_evidence.rs b/src/http_evidence.rs index fbcc4f9..550bd5a 100644 --- a/src/http_evidence.rs +++ b/src/http_evidence.rs @@ -17,11 +17,11 @@ pub fn req_to_evidence(req: &Request) -> String { // SAFETY: */* is always valid headers.append("accept", HeaderValue::from_str("*/*").unwrap()); } - if !headers.contains_key("host") { - if let Some(host) = req.url().host_str() { - // SAFETY: host is always a valid string - headers.append("host", HeaderValue::from_str(host).unwrap()); - } + if !headers.contains_key("host") + && let Some(host) = req.url().host_str() + { + // SAFETY: host is always a valid string + headers.append("host", HeaderValue::from_str(host).unwrap()); } let headers = headers_to_evidence(&headers); let body = req.body(); diff --git a/src/lib.rs b/src/lib.rs index b6e141a..7b14f17 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -23,7 +23,7 @@ engine! { version = env!("CARGO_PKG_VERSION"), )] #[derive(Default)] - struct HTTP { + struct Http { /// The reqwest client client: reqwest::blocking::Client, @@ -36,7 +36,7 @@ engine! { builder: Option>, } - impl HTTP { + impl Http { #[instruction( name = "Prepare GET Request", flags = InstructionFlags::INFALLIBLE | InstructionFlags::AUTOMATIC, @@ -121,15 +121,17 @@ engine! { if let Some(builder) = state.builder.take() { let (cl, req) = builder.into_inner().build_split(); let req = req?; - evidence.push(Evidence { label: "HTTP Request".to_string(), content: EvidenceContent::Textual(req_to_evidence(&req)) }); - + let url = req.url().to_string(); + let req_ev = req_to_evidence(&req); let res = cl.execute(req)?; // Store last request values state.last_status = Some(res.status()); state.last_headers = Some(res.headers().clone()); let mut body = String::new(); - evidence.push(Evidence { label: "HTTP Response".to_string(), content: EvidenceContent::Textual(res_to_evidence(res, &mut body)) }); + let res_ev = res_to_evidence(res, &mut body); + + evidence.push(Evidence { label: format!("Request to {url}"), content: EvidenceContent::HttpRequestResponse(req_ev, res_ev) }); body } else {