use crate::common::{Error, init_tracing};
use nisshi_sans_io::{DeleteGroupsRequest, ErrorCode};
use nisshi_storage::{DeleteGroupsService, StorageContainer};
use rama::{Context, Layer as _, Service, layer::MapStateLayer};
use url::Url;
mod common;
#[tokio::test]
async fn delete_non_existent() -> Result<(), Error> {
let _guard = init_tracing()?;
let storage = StorageContainer::builder()
.cluster_id("nisshi")
.node_id(111)
.advertised_listener(Url::parse("tcp://localhost:9092")?)
.storage(Url::parse("memory://nisshi/")?)
.build()
.await?;
let service = MapStateLayer::new(|_| storage).into_layer(DeleteGroupsService);
let group_id = "abcba";
let response = service
.serve(
Context::default(),
DeleteGroupsRequest::default().groups_names(Some([group_id.into()].into())),
)
.await?;
let results = response.results.unwrap_or_default();
assert_eq!(1, results.len());
assert_eq!(group_id, results[0].group_id.as_str());
assert_eq!(ErrorCode::None, ErrorCode::try_from(results[0].error_code)?);
Ok(())
}