use std::sync::Arc;
use gunnar_grpc::ControlPlane as _;
use gunnar_server::control_plane::CoreControlPlane;
use gunnar_server::stores::ServerStores;
#[test]
fn storage_info_names_the_engine_its_description_and_its_source_repository_apart() {
let dir = tempfile::tempdir().expect("tempdir");
let stores = Arc::new(ServerStores::open(dir.path()).expect("stores"));
let plane = CoreControlPlane::new(Arc::clone(&stores));
let info = plane.storage_info(None).expect("storage info");
let engine = info.engine.clone().expect("StorageInfoResponse.engine is set");
let running = stores.engine();
assert_eq!(engine, running.report(), "the report is the running engine's");
assert!(!engine.name.is_empty() && !engine.description.is_empty() && engine.repo_url.starts_with("https://"), "{engine:?}");
assert_eq!(info.object_backend, format!("{} ({})", engine.name, engine.description), "the prose line is the same parts");
}