From b2b4339ab8544095ced221f7c4929a81808c0c59 Mon Sep 17 00:00:00 2001 From: Ilya Bizyaev Date: Wed, 26 Feb 2025 22:54:01 +0100 Subject: [PATCH] Make editMessageText delete reply markup to match Telegram's behavior This is not documented properly in Telegram's API docs, but it's the go-to way to remove the inline keyboard from a message. --- teloxide_tests/src/server/messages.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/teloxide_tests/src/server/messages.rs b/teloxide_tests/src/server/messages.rs index 2a6677e..175af90 100644 --- a/teloxide_tests/src/server/messages.rs +++ b/teloxide_tests/src/server/messages.rs @@ -36,11 +36,15 @@ impl Messages { reply_markup: Option, ) -> Option { match reply_markup { + None => { + // Telegram deletes reply markup when `editMessageText` is called without any. + self.edit_message(message_id, "reply_markup", None::<()>) + } // Only the inline keyboard can be inside of a message Some(ReplyMarkup::InlineKeyboard(reply_markup)) => { self.edit_message(message_id, "reply_markup", reply_markup) } - _ => self.get_message(message_id), + _ => unreachable!("Only InlineKeyboard is allowed"), } }