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"
);
}