use desi_explorer_api::store::CatalogStore; #[cfg(test)] mod tests { use super::*; #[test] fn load_parses_catalogs_and_objects() { let json = r#"{ "catalogs": [ {"name":"edr","release":"EDR","description":"test","object_count":2} ], "objects": [ {"id":"o1","catalog":"edr","object_type":"GALAXY","ra":1.5,"dec":2.5,"redshift":0.8} ] }"#; let dir = std::env::temp_dir().join(format!( "desi_explorer_store_{}_{}", std::process::id(), line!() )); std::fs::create_dir_all(&dir).unwrap(); let path = dir.join("data.json"); std::fs::write(&path, json).unwrap(); let store = CatalogStore::load(&path).unwrap(); let _ = std::fs::remove_dir_all(&dir); assert_eq!(store.catalogs.len(), 1); assert_eq!(store.catalogs[0].name, "edr"); assert_eq!(store.catalogs[0].object_count, Some(2)); assert_eq!(store.objects.len(), 1); assert_eq!(store.objects[0].id, "o1"); assert_eq!(store.objects[0].ra, 1.5); } #[test] fn load_rejects_malformed_json() { let dir = std::env::temp_dir().join(format!( "desi_explorer_store_{}_{}", std::process::id(), line!() )); std::fs::create_dir_all(&dir).unwrap(); let path = dir.join("data.json"); std::fs::write(&path, "not json").unwrap(); let result = CatalogStore::load(&path); let _ = std::fs::remove_dir_all(&dir); assert!(result.is_err()); } }