const WHATSAPP_HANDLER: &str = include_str!("../channels/whatsapp/handler.rs");
#[test]
fn denial_phrase_is_gone() {
assert!(
!WHATSAPP_HANDLER.contains("There is no whatsapp_send"),
"whatsapp handler still denies whatsapp_send exists (#1489)"
);
assert!(
!WHATSAPP_HANDLER.contains("There is no `whatsapp_send`"),
"whatsapp handler still denies whatsapp_send exists (backticked variant)"
);
}
#[test]
fn per_turn_preamble_directs_media_through_whatsapp_send() {
let (_, rest) = WHATSAPP_HANDLER
.split_once("[Channel: WhatsApp (chat_id: {chat_id})")
.expect("per-turn channel preamble not found");
let (preamble, _) = rest
.split_once("]\\n{agent_input}")
.expect("per-turn preamble end marker not found");
assert!(
preamble.contains("automatically sent to this chat"),
"auto-delivery contract missing from per-turn preamble"
);
assert!(
preamble.contains("Do NOT call whatsapp_send to deliver your answer"),
"per-turn preamble must forbid whatsapp_send for plain replies"
);
for capability in ["media", "polls", "reactions", "quote-replies"] {
assert!(
preamble.contains(capability),
"per-turn preamble must enumerate {capability} as a whatsapp_send use case"
);
}
assert!(
preamble.contains("ORDERING: send any files/documents/photos FIRST"),
"per-turn preamble must carry the media-before-text ordering rule"
);
}
#[test]
fn greeting_preamble_names_whatsapp_send() {
let (_, rest) = WHATSAPP_HANDLER
.split_once("[Channel: WhatsApp — your text response is automatically sent to this chat")
.expect("greeting channel preamble not found");
let (greeting, _) = rest
.split_once("You have just connected")
.expect("greeting preamble end marker not found");
assert!(
greeting.contains("Do NOT call whatsapp_send to deliver your answer"),
"greeting preamble must forbid whatsapp_send for the reply itself"
);
assert!(
greeting.contains("media"),
"greeting preamble must state what whatsapp_send IS for"
);
}