use super::connections::*; use super::run_async; use u_lib::{ api::HttpClient, config::get_self_id, jobs::split_payload, messaging::Reportable, models::*, types::Id, }; pub struct RegisteredAgent { pub id: Id, } #[fixture] #[once] pub fn registered_agent(client: &HttpClient) -> RegisteredAgent { run_async(async { let agent_id = get_self_id(); println!("registering agent {agent_id}"); let resp = client .get_personal_jobs(agent_id) .await .unwrap() .pop() .unwrap(); let job_id = resp.job_id; let job = client.get_job(job_id, true).await.unwrap(); assert_eq!(job.job.alias, Some("agent_hello".to_string())); let mut agent_data = AssignedJob::from((&split_payload(job).unwrap().job, resp)); agent_data.set_result(&Agent::with_id(agent_id)); client .report(&Reportable::Assigned(agent_data)) .await .unwrap(); RegisteredAgent { id: agent_id } }) }