use crate::channels::telegram::handler::{frame_group_history, group_current_sender_label};
#[test]
fn current_sender_label_names_the_speaker_and_fences_off_history_names() {
let label = group_current_sender_label("team room", "Adolfo", " (@adolfodev)", "owner");
assert!(label.contains("Adolfo") && label.contains("(@adolfodev)"));
assert!(label.contains("owner"));
assert!(
label.to_lowercase().contains("reply to adolfo"),
"label must tell the agent who to reply to: {label}"
);
assert!(
label.contains("history") && label.to_lowercase().contains("other people"),
"label must warn that history names are other people: {label}"
);
}
#[test]
fn label_role_reflects_owner_vs_user() {
assert!(group_current_sender_label("g", "Carlos", "", "user").contains("(user)"));
assert!(group_current_sender_label("g", "Adolfo", "", "owner").contains("(owner)"));
}
#[test]
fn history_frame_marks_lines_as_other_senders_not_the_current_person() {
let lines = "[14:02] Adi: hello everyone\n[14:03] Carlos: hi";
let framed = frame_group_history(lines, 2);
assert!(framed.contains(lines), "history content must be preserved");
assert!(framed.contains("2 messages"));
let lower = framed.to_lowercase();
assert!(
lower.contains("various senders") && lower.contains("not the"),
"history must be framed as prior context from others: {framed}"
);
assert!(framed.contains("--- end history ---"));
}