fixes
Some checks failed
CI / Check (pull_request) Has been cancelled
CI / Format (pull_request) Has been cancelled
CI / Clippy (pull_request) Has been cancelled
CI / Build (macos-latest) (pull_request) Has been cancelled
CI / Build (ubuntu-latest) (pull_request) Has been cancelled
CI / Build (windows-latest) (pull_request) Has been cancelled

This commit is contained in:
Mikhail Kilin
2026-01-29 01:22:57 +03:00
parent 68a2b7a982
commit 126c7482af
39 changed files with 2861 additions and 74 deletions

View File

@@ -3,6 +3,7 @@
use tele_tui::app::{App, AppScreen};
use tele_tui::config::Config;
use tele_tui::tdlib::{ChatInfo, MessageInfo};
use tele_tui::tdlib::client::AuthState;
use ratatui::widgets::ListState;
use std::collections::HashMap;
@@ -31,6 +32,11 @@ pub struct TestAppBuilder {
message_search_query: String,
forwarding_message_id: Option<i64>,
is_selecting_forward_chat: bool,
status_message: Option<String>,
auth_state: Option<AuthState>,
phone_input: Option<String>,
code_input: Option<String>,
password_input: Option<String>,
}
impl Default for TestAppBuilder {
@@ -60,6 +66,11 @@ impl TestAppBuilder {
message_search_query: String::new(),
forwarding_message_id: None,
is_selecting_forward_chat: false,
status_message: None,
auth_state: None,
phone_input: None,
code_input: None,
password_input: None,
}
}
@@ -168,6 +179,36 @@ impl TestAppBuilder {
self
}
/// Установить статус сообщение (для loading screen)
pub fn status_message(mut self, message: &str) -> Self {
self.status_message = Some(message.to_string());
self
}
/// Установить auth state
pub fn auth_state(mut self, state: AuthState) -> Self {
self.auth_state = Some(state);
self
}
/// Установить phone input
pub fn phone_input(mut self, phone: &str) -> Self {
self.phone_input = Some(phone.to_string());
self
}
/// Установить code input
pub fn code_input(mut self, code: &str) -> Self {
self.code_input = Some(code.to_string());
self
}
/// Установить password input
pub fn password_input(mut self, password: &str) -> Self {
self.password_input = Some(password.to_string());
self
}
/// Построить App
///
/// ВАЖНО: Этот метод создаёт App с реальным TdClient,
@@ -193,6 +234,27 @@ impl TestAppBuilder {
app.forwarding_message_id = self.forwarding_message_id;
app.is_selecting_forward_chat = self.is_selecting_forward_chat;
// Применяем status_message
if let Some(status) = self.status_message {
app.status_message = Some(status);
}
// Применяем auth state
if let Some(auth_state) = self.auth_state {
app.td_client.auth_state = auth_state;
}
// Применяем auth inputs
if let Some(phone) = self.phone_input {
app.phone_input = phone;
}
if let Some(code) = self.code_input {
app.code_input = code;
}
if let Some(password) = self.password_input {
app.password_input = password;
}
// Выбираем первый чат если есть
if !app.chats.is_empty() {
let mut list_state = ListState::default();