tests
This commit is contained in:
@@ -4,17 +4,18 @@ mod helpers;
|
||||
|
||||
use helpers::fake_tdclient::FakeTdClient;
|
||||
use helpers::test_data::{create_test_chat, TestMessageBuilder};
|
||||
use tele_tui::types::{ChatId, MessageId};
|
||||
|
||||
/// Test: Навигация вверх/вниз по списку чатов
|
||||
#[test]
|
||||
fn test_navigate_chat_list_up_down() {
|
||||
let mut client = FakeTdClient::new();
|
||||
#[tokio::test]
|
||||
async fn test_navigate_chat_list_up_down() {
|
||||
let client = FakeTdClient::new();
|
||||
|
||||
let chat1 = create_test_chat("Mom", 123);
|
||||
let chat2 = create_test_chat("Boss", 456);
|
||||
let chat3 = create_test_chat("Friend", 789);
|
||||
|
||||
client = client.with_chats(vec![chat1, chat2, chat3]);
|
||||
let client = client.with_chats(vec![chat1, chat2, chat3]);
|
||||
|
||||
let chats = client.get_chats();
|
||||
|
||||
@@ -52,9 +53,9 @@ fn test_navigate_chat_list_up_down() {
|
||||
}
|
||||
|
||||
/// Test: Enter открывает чат
|
||||
#[test]
|
||||
fn test_enter_opens_chat() {
|
||||
let mut client = FakeTdClient::new();
|
||||
#[tokio::test]
|
||||
async fn test_enter_opens_chat() {
|
||||
let client = FakeTdClient::new();
|
||||
|
||||
let chat = create_test_chat("Mom", 123);
|
||||
let _client = client.with_chat(chat);
|
||||
@@ -70,8 +71,8 @@ fn test_enter_opens_chat() {
|
||||
}
|
||||
|
||||
/// Test: Esc закрывает чат
|
||||
#[test]
|
||||
fn test_esc_closes_chat() {
|
||||
#[tokio::test]
|
||||
async fn test_esc_closes_chat() {
|
||||
// Состояние: открыт чат 123
|
||||
let selected_chat_id = Some(123);
|
||||
|
||||
@@ -82,9 +83,9 @@ fn test_esc_closes_chat() {
|
||||
}
|
||||
|
||||
/// Test: Скролл сообщений в чате
|
||||
#[test]
|
||||
fn test_scroll_messages_in_chat() {
|
||||
let mut client = FakeTdClient::new();
|
||||
#[tokio::test]
|
||||
async fn test_scroll_messages_in_chat() {
|
||||
let client = FakeTdClient::new();
|
||||
|
||||
let messages = vec![
|
||||
TestMessageBuilder::new("Msg 1", 1).build(),
|
||||
@@ -94,7 +95,7 @@ fn test_scroll_messages_in_chat() {
|
||||
TestMessageBuilder::new("Msg 5", 5).build(),
|
||||
];
|
||||
|
||||
client = client.with_messages(123, messages);
|
||||
let client = client.with_messages(123, messages);
|
||||
|
||||
let msgs = client.get_messages(123);
|
||||
|
||||
@@ -123,12 +124,12 @@ fn test_scroll_messages_in_chat() {
|
||||
}
|
||||
|
||||
/// Test: Переключение между папками (1-9)
|
||||
#[test]
|
||||
fn test_switch_folders() {
|
||||
let mut client = FakeTdClient::new();
|
||||
#[tokio::test]
|
||||
async fn test_switch_folders() {
|
||||
let client = FakeTdClient::new();
|
||||
|
||||
// Добавляем папки (FakeTdClient уже создаёт "All" с id=0)
|
||||
client = client.with_folder(1, "Personal").with_folder(2, "Work");
|
||||
let client = client.with_folder(1, "Personal").with_folder(2, "Work");
|
||||
|
||||
let folders = client.get_folders();
|
||||
|
||||
@@ -156,8 +157,8 @@ fn test_switch_folders() {
|
||||
}
|
||||
|
||||
/// Test: Русская раскладка для навигации (р/о/л/д)
|
||||
#[test]
|
||||
fn test_russian_layout_navigation() {
|
||||
#[tokio::test]
|
||||
async fn test_russian_layout_navigation() {
|
||||
// В реальном App: к/j/h/l маппятся на р/о/л/д для русской раскладки
|
||||
|
||||
// Mapping:
|
||||
@@ -181,9 +182,9 @@ fn test_russian_layout_navigation() {
|
||||
}
|
||||
|
||||
/// Test: Подгрузка старых сообщений при скролле вверх
|
||||
#[test]
|
||||
fn test_load_older_messages_on_scroll_up() {
|
||||
let mut client = FakeTdClient::new();
|
||||
#[tokio::test]
|
||||
async fn test_load_older_messages_on_scroll_up() {
|
||||
let client = FakeTdClient::new();
|
||||
|
||||
// Начальные сообщения (последние 10)
|
||||
let initial_messages = vec![
|
||||
@@ -199,7 +200,7 @@ fn test_load_older_messages_on_scroll_up() {
|
||||
TestMessageBuilder::new("Msg 100", 100).build(),
|
||||
];
|
||||
|
||||
client = client.with_messages(123, initial_messages);
|
||||
let client = client.with_messages(123, initial_messages);
|
||||
|
||||
assert_eq!(client.get_messages(123).len(), 10);
|
||||
|
||||
@@ -219,10 +220,11 @@ fn test_load_older_messages_on_scroll_up() {
|
||||
let mut all_messages = older_messages;
|
||||
all_messages.extend(client.get_messages(123));
|
||||
|
||||
client.messages.insert(123, all_messages);
|
||||
let client = client.with_messages(123, all_messages);
|
||||
|
||||
// Теперь должно быть 15 сообщений
|
||||
assert_eq!(client.get_messages(123).len(), 15);
|
||||
assert_eq!(client.get_messages(123)[0].content.text, "Msg 81");
|
||||
assert_eq!(client.get_messages(123)[14].content.text, "Msg 100");
|
||||
let messages = client.get_messages(123);
|
||||
assert_eq!(messages.len(), 15);
|
||||
assert_eq!(messages[0].content.text, "Msg 81");
|
||||
assert_eq!(messages[14].content.text, "Msg 100");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user