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.
|
|
|
use super::connections::*;
|
|
|
|
use super::run_async;
|
|
|
|
use u_lib::{
|
|
|
|
api::ClientHandler, 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: &ClientHandler) -> 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).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 }
|
|
|
|
})
|
|
|
|
}
|