use super::*;
use crate::nav::convs::Titles;
#[test]
fn a_title_is_the_same_answer_the_agent_lookup_gives() {
let mut named = agent("aaaa-0001", AgentState::Stopped, 1);
named.name = Some("pennant".to_owned());
let mut bare = agent("bbbb-0002", AgentState::Stopped, 1);
bare.preview = Some("fix the gate".to_owned());
let agents = vec![named, bare];
let titles = Titles::of(&agents);
assert_eq!(titles.name("aaaa-0001"), "pennant");
assert_eq!(titles.name("bbbb-0002"), "fix the gate");
for a in &agents {
assert_eq!(
titles.name(&a.agent_id),
display_name_of(&agents, &a.agent_id)
);
}
}
#[test]
fn an_unknown_id_lands_on_the_floor() {
let titles = Titles::of(&[agent("aaaa-0001", AgentState::Stopped, 1)]);
assert_eq!(titles.name("user"), "user");
assert_eq!(
titles.name("20260801T225418Z-aaaa-20260801T225500Z-bbbb"),
"20260801T225500Z-bbbb"
);
assert_eq!(Titles::default().name("solo"), "solo");
}
#[test]
fn a_row_listing_builds_the_same_table() {
let mut named = agent("aaaa-0001", AgentState::Stopped, 1);
named.name = Some("pennant".to_owned());
let agents = vec![named, agent("bbbb-0002", AgentState::Stopped, 1)];
let rows = build(&agents, "/w", &unseen, 0, &plain, &[]);
let from_rows = Titles::of_rows(&rows);
let from_agents = Titles::of(&agents);
for a in &agents {
assert_eq!(from_rows.name(&a.agent_id), from_agents.name(&a.agent_id));
}
}