use crate::common::{Error, init_tracing};
use rama::{Context, Layer as _, Service, layer::MapStateLayer};
use tansu_sans_io::{ErrorCode, GetTelemetrySubscriptionsRequest};
use tansu_storage::{GetTelemetrySubscriptionsService, StorageContainer};
use url::Url;
mod common;
#[tokio::test]
async fn req() -> Result<(), Error> {
let _guard = init_tracing()?;
const HOST: &str = "localhost";
const PORT: i32 = 9092;
const NODE_ID: i32 = 111;
let storage = StorageContainer::builder()
.cluster_id("tansu")
.node_id(NODE_ID)
.advertised_listener(Url::parse(&format!("tcp://{HOST}:{PORT}"))?)
.storage(Url::parse("memory://tansu/")?)
.build()
.await?;
let service = MapStateLayer::new(|_| storage).into_layer(GetTelemetrySubscriptionsService);
let client_instance_id = [0; 16];
let response = service
.serve(
Context::default(),
GetTelemetrySubscriptionsRequest::default().client_instance_id(client_instance_id),
)
.await?;
assert_eq!(ErrorCode::None, ErrorCode::try_from(response.error_code)?);
Ok(())
}