diff options
| author | mo khan <mo@mokhan.ca> | 2025-06-27 14:52:38 -0600 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2025-06-27 14:52:38 -0600 |
| commit | f2e1cc278bedb63ba0b0b8d9a82e28f0e10fe048 (patch) | |
| tree | 963d027eafc2458177df24db0a3decb56170c268 /tests | |
| parent | 2f895218df8115d90ba03253024f6974a1c4f21b (diff) | |
test: merge server tests
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/authorization/server_test.rs | 59 | ||||
| -rw-r--r-- | tests/grpc_server_test.rs | 61 |
2 files changed, 56 insertions, 64 deletions
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<Channel> { + 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<Channel> { - 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(); - } -} |
