This commit is contained in:
Mikhail Kilin
2026-01-31 03:48:50 +03:00
parent 1bf9b3d703
commit 644e36597d
37 changed files with 1070 additions and 600 deletions

View File

@@ -5,6 +5,7 @@ mod helpers;
use helpers::fake_tdclient::FakeTdClient;
use helpers::test_data::TestMessageBuilder;
use tele_tui::tdlib::{ForwardInfo, ReplyInfo};
use tele_tui::types::MessageId;
/// Test: Reply создаёт сообщение с reply_to
#[test]
@@ -28,8 +29,8 @@ fn test_reply_creates_message_with_reply_to() {
// Проверяем что в списке 2 сообщения
let messages = client.get_messages(123);
assert_eq!(messages.len(), 2);
assert_eq!(messages[1].id, reply_id);
assert_eq!(messages[1].content.text(), "Answer!");
assert_eq!(messages[1].id(), MessageId::new(reply_id));
assert_eq!(messages[1].content.text, "Answer!");
}
/// Test: Reply отображает превью оригинального сообщения
@@ -48,10 +49,10 @@ fn test_reply_shows_original_preview() {
// Проверяем что reply_to сохранено
let messages = client.get_messages(123);
assert_eq!(messages.len(), 1);
assert!(messages[0].reply_to.is_some());
assert!(messages[0].reply_to().is_some());
let reply = messages[0].reply_to.as_ref().unwrap();
assert_eq!(reply.message_id, 100);
let reply = messages[0].reply_to().unwrap();
assert_eq!(reply.message_id, MessageId::new(100));
assert_eq!(reply.sender_name, "Alice");
assert_eq!(reply.text, "Original");
}
@@ -76,7 +77,7 @@ fn test_cancel_reply_sends_without_reply_to() {
assert_eq!(client.sent_messages()[0].reply_to, None);
let messages = client.get_messages(123);
assert_eq!(messages[1].content.text(), "Regular message");
assert_eq!(messages[1].content.text, "Regular message");
}
/// Test: Forward создаёт сообщение с forward_from
@@ -94,9 +95,9 @@ fn test_forward_creates_message_with_forward_from() {
// Проверяем что forward_from сохранено
let messages = client.get_messages(456);
assert_eq!(messages.len(), 1);
assert!(messages[0].forward_from.is_some());
assert!(messages[0].forward_from().is_some());
let forward = messages[0].forward_from.as_ref().unwrap();
let forward = messages[0].forward_from().unwrap();
assert_eq!(forward.sender_name, "Bob");
assert!(forward.date > 0); // Дата установлена
}
@@ -114,7 +115,7 @@ fn test_forward_displays_sender_name() {
client = client.with_message(789, msg);
let messages = client.get_messages(789);
let forward = messages[0].forward_from.as_ref().unwrap();
let forward = messages[0].forward_from().unwrap();
// В UI это будет отображаться как "↪ Переслано от Charlie"
assert_eq!(forward.sender_name, "Charlie");
@@ -144,7 +145,7 @@ fn test_forward_to_different_chat() {
// Проверяем что во втором чате тоже 1 сообщение (пересланное)
assert_eq!(client.get_messages(456).len(), 1);
assert!(client.get_messages(456)[0].forward_from.is_some());
assert!(client.get_messages(456)[0].forward_from().is_some());
}
/// Test: Reply + Forward комбинация (ответ на пересланное сообщение)
@@ -167,7 +168,7 @@ fn test_reply_to_forwarded_message() {
let messages = client.get_messages(123);
assert_eq!(messages.len(), 2);
assert_eq!(messages[1].id, reply_id);
assert_eq!(messages[1].id(), MessageId::new(reply_id));
}
/// Test: Forward множества сообщений (batch forward)
@@ -196,7 +197,7 @@ fn test_forward_multiple_messages() {
// Проверяем что все 3 сообщения пересланы
let messages = client.get_messages(456);
assert_eq!(messages.len(), 3);
assert!(messages[0].forward_from.is_some());
assert!(messages[1].forward_from.is_some());
assert!(messages[2].forward_from.is_some());
assert!(messages[0].forward_from().is_some());
assert!(messages[1].forward_from().is_some());
assert!(messages[2].forward_from().is_some());
}