From f2e1cc278bedb63ba0b0b8d9a82e28f0e10fe048 Mon Sep 17 00:00:00 2001 From: mo khan Date: Fri, 27 Jun 2025 14:52:38 -0600 Subject: test: merge server tests --- tests/authorization/server_test.rs | 59 ++++++++++++++++++++++++++++++++++-- tests/grpc_server_test.rs | 61 -------------------------------------- 2 files changed, 56 insertions(+), 64 deletions(-) delete mode 100644 tests/grpc_server_test.rs (limited to 'tests') diff --git a/tests/authorization/server_test.rs b/tests/authorization/server_test.rs index 6001e978..5e99fdac 100644 --- a/tests/authorization/server_test.rs +++ b/tests/authorization/server_test.rs @@ -1,7 +1,60 @@ #[cfg(test)] mod tests { - #[test] - fn test_create_server() { - assert!(authzd::create_server().is_ok()); + use std::net::SocketAddr; + use tokio::net::TcpListener; + use tonic::transport::Channel; + + async fn available_port() -> SocketAddr { + let listener = TcpListener::bind("127.0.0.1:0") + .await + .expect("Failed to bind to random port"); + let addr = listener.local_addr().expect("Failed to get local address"); + drop(listener); + addr + } + + async fn start_server() -> (SocketAddr, tokio::task::JoinHandle<()>) { + let addr = available_port().await; + let server = authzd::create_server().expect("Failed to create server"); + + let handle = tokio::spawn(async move { + server.serve(addr).await.expect("Failed to start server"); + }); + + tokio::time::sleep(tokio::time::Duration::from_millis(100)).await; + + (addr, handle) + } + + async fn build_channel(addr: SocketAddr) -> Channel { + Channel::from_shared(format!("http://{}", addr)) + .expect("Failed to create channel") + .connect() + .await + .expect("Failed to connect to server") + } + + async fn build_client( + addr: SocketAddr, + ) -> tonic_health::pb::health_client::HealthClient { + tonic_health::pb::health_client::HealthClient::new(build_channel(addr).await) + } + + #[tokio::test] + async fn test_health_check_service() { + let (addr, server) = start_server().await; + let mut client = build_client(addr).await; + let request = tonic::Request::new(tonic_health::pb::HealthCheckRequest { + service: String::new(), + }); + + let response = client.check(request).await; + assert!(response.is_ok()); + assert_eq!( + response.unwrap().into_inner().status(), + tonic_health::pb::health_check_response::ServingStatus::Serving + ); + + server.abort(); } } diff --git a/tests/grpc_server_test.rs b/tests/grpc_server_test.rs deleted file mode 100644 index ec471799..00000000 --- a/tests/grpc_server_test.rs +++ /dev/null @@ -1,61 +0,0 @@ -#[cfg(test)] -mod tests { - use authzd::create_server; - use std::net::SocketAddr; - use tokio::net::TcpListener; - use tonic::transport::Channel; - - async fn available_port() -> SocketAddr { - let listener = TcpListener::bind("127.0.0.1:0") - .await - .expect("Failed to bind to random port"); - let addr = listener.local_addr().expect("Failed to get local address"); - drop(listener); - addr - } - - async fn start_server() -> (SocketAddr, tokio::task::JoinHandle<()>) { - let addr = available_port().await; - let server = create_server().expect("Failed to create server"); - - let handle = tokio::spawn(async move { - server.serve(addr).await.expect("Failed to start server"); - }); - - tokio::time::sleep(tokio::time::Duration::from_millis(100)).await; - - (addr, handle) - } - - async fn build_channel(addr: SocketAddr) -> Channel { - Channel::from_shared(format!("http://{}", addr)) - .expect("Failed to create channel") - .connect() - .await - .expect("Failed to connect to server") - } - - async fn build_client( - addr: SocketAddr, - ) -> tonic_health::pb::health_client::HealthClient { - tonic_health::pb::health_client::HealthClient::new(build_channel(addr).await) - } - - #[tokio::test] - async fn test_health_check_service() { - let (addr, server) = start_server().await; - let mut client = build_client(addr).await; - let request = tonic::Request::new(tonic_health::pb::HealthCheckRequest { - service: String::new(), - }); - - let response = client.check(request).await; - assert!(response.is_ok()); - assert_eq!( - response.unwrap().into_inner().status(), - tonic_health::pb::health_check_response::ServingStatus::Serving - ); - - server.abort(); - } -} -- cgit v1.2.3