use crate::helpers::ENV; use u_lib::{ api::ClientHandler, config::get_self_id, jobs::fat_meta_to_thin, messaging::Reportable, models::*, }; use uuid::Uuid; pub struct RegisteredAgent { pub id: Uuid, } impl RegisteredAgent { pub async fn unregister(self) { let cli = ClientHandler::new(&ENV.u_server, None).await.unwrap(); cli.del(self.id).await.unwrap(); } } #[fixture] pub async fn register_agent() -> RegisteredAgent { let cli = ClientHandler::new(&ENV.u_server, None).await.unwrap(); let agent_id = get_self_id(); println!("registering agent {agent_id}"); let resp = cli .get_personal_jobs(agent_id) .await .unwrap() .pop() .unwrap(); let job_id = resp.job_id; let job = cli.get_job(job_id).await.unwrap(); assert_eq!(job.alias, Some("agent_hello".to_string())); let mut agent_data = AssignedJob::from((&fat_meta_to_thin(job).unwrap(), resp)); agent_data.set_result(&Agent::with_id(agent_id)); cli.report(Reportable::Assigned(agent_data)).await.unwrap(); RegisteredAgent { id: agent_id } }