From 3b2610d6c93c548f987dcf81c5608114a9de2bc8 Mon Sep 17 00:00:00 2001 From: Paul Campbell Date: Wed, 6 Nov 2024 21:09:12 +0000 Subject: [PATCH] test(net): add test to check that all expected requests are made --- tests/net.rs | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tests/net.rs b/tests/net.rs index 95df8a0..14374d6 100644 --- a/tests/net.rs +++ b/tests/net.rs @@ -5,6 +5,7 @@ type TestResult = Result<(), Error>; #[tokio::test] async fn test_get() -> TestResult { + //given let mut net = kxio::net::mock(); let client = net.client(); @@ -18,8 +19,10 @@ async fn test_get() -> TestResult { net.on(request).response(my_response.into()); + //when let response = net.send(client.get(url)).await?; + //then assert_eq!(response.status(), http::StatusCode::OK); assert_eq!(response.bytes().await.expect("response body"), "Get OK"); @@ -28,6 +31,7 @@ async fn test_get() -> TestResult { #[tokio::test] async fn test_post() -> TestResult { + //given let mut net = kxio::net::mock(); let client = net.client(); @@ -41,10 +45,38 @@ async fn test_post() -> TestResult { net.on(request).response(my_response.into()); + //when let response = net.send(client.post(url)).await?; + //then assert_eq!(response.status(), http::StatusCode::OK); assert_eq!(response.bytes().await.expect("response body"), "Post OK"); Ok(()) } + +#[tokio::test] +#[should_panic] +async fn test_unused_post() { + //given + let mut net = kxio::net::mock(); + let client = net.client(); + + let url = "https://www.example.com"; + let request = client.post(url).build().expect("build request"); + let my_response = net + .response() + .status(200) + .body("Post OK") + .expect("request body"); + + net.on(request).response(my_response.into()); + + //when + // don't send the planned request + // let _response = net.send(client.post(url)).await.expect("send"); + + + //then + // Drop implementation for net should panic +}