You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
1.2 KiB

use super::connections::*;
use super::run_async;
use u_lib::unwrap_enum;
use u_lib::{api::HttpClient, 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 = Agent::with_current_platform();
let agent_id = agent.id;
println!("registering agent {agent_id}");
debug!("registering agent1 {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, BriefMode::No).await.unwrap();
let job = unwrap_enum!(job, BriefOrFull::Full);
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);
client
.report([Reportable::Assigned(agent_data)])
.await
.unwrap();
RegisteredAgent { id: agent_id }
})
}