summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2025-06-27 14:52:38 -0600
committermo khan <mo@mokhan.ca>2025-06-27 14:52:38 -0600
commitf2e1cc278bedb63ba0b0b8d9a82e28f0e10fe048 (patch)
tree963d027eafc2458177df24db0a3decb56170c268 /tests
parent2f895218df8115d90ba03253024f6974a1c4f21b (diff)
test: merge server tests
Diffstat (limited to 'tests')
-rw-r--r--tests/authorization/server_test.rs59
-rw-r--r--tests/grpc_server_test.rs61
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();
- }
-}