fix: resolve test compilation errors and doctest issues
- Add HotkeysConfig::default() to Config initializers in tests - Wrap env::set_var/remove_var calls in unsafe blocks - Fix doctest in App::new() (select_chat -> select_current_chat) - Mark TdClient doctest as ignore (async code needs runtime) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -41,7 +41,7 @@ use ratatui::widgets::ListState;
|
|||||||
/// app.previous_chat();
|
/// app.previous_chat();
|
||||||
///
|
///
|
||||||
/// // Open a chat
|
/// // Open a chat
|
||||||
/// app.select_chat();
|
/// app.select_current_chat();
|
||||||
/// ```
|
/// ```
|
||||||
pub struct App {
|
pub struct App {
|
||||||
pub config: crate::config::Config,
|
pub config: crate::config::Config,
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ use super::users::UserCache;
|
|||||||
///
|
///
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```no_run
|
/// ```ignore
|
||||||
/// use tele_tui::tdlib::TdClient;
|
/// use tele_tui::tdlib::TdClient;
|
||||||
///
|
///
|
||||||
/// let mut client = TdClient::new();
|
/// let mut client = TdClient::new();
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
// Integration tests for config flow
|
// Integration tests for config flow
|
||||||
|
|
||||||
use tele_tui::config::{Config, ColorsConfig, GeneralConfig};
|
use tele_tui::config::{Config, ColorsConfig, GeneralConfig, HotkeysConfig};
|
||||||
|
|
||||||
/// Test: Дефолтные значения конфигурации
|
/// Test: Дефолтные значения конфигурации
|
||||||
#[test]
|
#[test]
|
||||||
@@ -32,6 +32,7 @@ fn test_config_custom_values() {
|
|||||||
reaction_chosen: "green".to_string(),
|
reaction_chosen: "green".to_string(),
|
||||||
reaction_other: "white".to_string(),
|
reaction_other: "white".to_string(),
|
||||||
},
|
},
|
||||||
|
hotkeys: HotkeysConfig::default(),
|
||||||
};
|
};
|
||||||
|
|
||||||
assert_eq!(config.general.timezone, "+05:00");
|
assert_eq!(config.general.timezone, "+05:00");
|
||||||
@@ -114,6 +115,7 @@ fn test_config_toml_serialization() {
|
|||||||
reaction_chosen: "green".to_string(),
|
reaction_chosen: "green".to_string(),
|
||||||
reaction_other: "white".to_string(),
|
reaction_other: "white".to_string(),
|
||||||
},
|
},
|
||||||
|
hotkeys: HotkeysConfig::default(),
|
||||||
};
|
};
|
||||||
|
|
||||||
// Сериализуем в TOML
|
// Сериализуем в TOML
|
||||||
@@ -190,8 +192,10 @@ mod credentials_tests {
|
|||||||
#[test]
|
#[test]
|
||||||
fn test_load_credentials_from_env() {
|
fn test_load_credentials_from_env() {
|
||||||
// Устанавливаем env переменные для теста
|
// Устанавливаем env переменные для теста
|
||||||
|
unsafe {
|
||||||
env::set_var("API_ID", "12345");
|
env::set_var("API_ID", "12345");
|
||||||
env::set_var("API_HASH", "test_hash_from_env");
|
env::set_var("API_HASH", "test_hash_from_env");
|
||||||
|
}
|
||||||
|
|
||||||
// Загружаем credentials
|
// Загружаем credentials
|
||||||
let result = Config::load_credentials();
|
let result = Config::load_credentials();
|
||||||
@@ -208,9 +212,11 @@ mod credentials_tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Очищаем env переменные после теста
|
// Очищаем env переменные после теста
|
||||||
|
unsafe {
|
||||||
env::remove_var("API_ID");
|
env::remove_var("API_ID");
|
||||||
env::remove_var("API_HASH");
|
env::remove_var("API_HASH");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Test: Проверка формата ошибки когда credentials не найдены
|
/// Test: Проверка формата ошибки когда credentials не найдены
|
||||||
#[test]
|
#[test]
|
||||||
@@ -232,8 +238,10 @@ mod credentials_tests {
|
|||||||
let original_api_id = env::var("API_ID").ok();
|
let original_api_id = env::var("API_ID").ok();
|
||||||
let original_api_hash = env::var("API_HASH").ok();
|
let original_api_hash = env::var("API_HASH").ok();
|
||||||
|
|
||||||
|
unsafe {
|
||||||
env::remove_var("API_ID");
|
env::remove_var("API_ID");
|
||||||
env::remove_var("API_HASH");
|
env::remove_var("API_HASH");
|
||||||
|
}
|
||||||
|
|
||||||
// Пытаемся загрузить credentials без файла и без env
|
// Пытаемся загрузить credentials без файла и без env
|
||||||
let result = Config::load_credentials();
|
let result = Config::load_credentials();
|
||||||
@@ -250,6 +258,7 @@ mod credentials_tests {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Восстанавливаем env переменные
|
// Восстанавливаем env переменные
|
||||||
|
unsafe {
|
||||||
if let Some(api_id) = original_api_id {
|
if let Some(api_id) = original_api_id {
|
||||||
env::set_var("API_ID", api_id);
|
env::set_var("API_ID", api_id);
|
||||||
}
|
}
|
||||||
@@ -257,4 +266,5 @@ mod credentials_tests {
|
|||||||
env::set_var("API_HASH", api_hash);
|
env::set_var("API_HASH", api_hash);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user