style: auto-format entire codebase with cargo fmt (stable rustfmt.toml)
Some checks failed
ci/woodpecker/pr/check Pipeline 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
Some checks failed
ci/woodpecker/pr/check Pipeline 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:
@@ -12,9 +12,9 @@ mod helpers;
|
||||
use crossterm::event::{KeyCode, KeyEvent, KeyModifiers};
|
||||
use helpers::app_builder::TestAppBuilder;
|
||||
use helpers::test_data::{create_test_chat, TestMessageBuilder};
|
||||
use tele_tui::app::InputMode;
|
||||
use tele_tui::app::methods::compose::ComposeMethods;
|
||||
use tele_tui::app::methods::messages::MessageMethods;
|
||||
use tele_tui::app::InputMode;
|
||||
use tele_tui::input::handle_main_input;
|
||||
|
||||
fn key(code: KeyCode) -> KeyEvent {
|
||||
@@ -32,9 +32,7 @@ fn ctrl_key(c: char) -> KeyEvent {
|
||||
/// `i` в Normal mode → переход в Insert mode
|
||||
#[tokio::test]
|
||||
async fn test_i_enters_insert_mode() {
|
||||
let messages = vec![
|
||||
TestMessageBuilder::new("Hello", 1).outgoing().build(),
|
||||
];
|
||||
let messages = vec![TestMessageBuilder::new("Hello", 1).outgoing().build()];
|
||||
let mut app = TestAppBuilder::new()
|
||||
.with_chats(vec![create_test_chat("Chat", 101)])
|
||||
.selected_chat(101)
|
||||
@@ -54,9 +52,7 @@ async fn test_i_enters_insert_mode() {
|
||||
/// `ш` (русская i) в Normal mode → переход в Insert mode
|
||||
#[tokio::test]
|
||||
async fn test_russian_i_enters_insert_mode() {
|
||||
let messages = vec![
|
||||
TestMessageBuilder::new("Hello", 1).outgoing().build(),
|
||||
];
|
||||
let messages = vec![TestMessageBuilder::new("Hello", 1).outgoing().build()];
|
||||
let mut app = TestAppBuilder::new()
|
||||
.with_chats(vec![create_test_chat("Chat", 101)])
|
||||
.selected_chat(101)
|
||||
@@ -72,9 +68,7 @@ async fn test_russian_i_enters_insert_mode() {
|
||||
/// Esc в Insert mode → Normal mode + MessageSelection
|
||||
#[tokio::test]
|
||||
async fn test_esc_exits_insert_mode() {
|
||||
let messages = vec![
|
||||
TestMessageBuilder::new("Hello", 1).outgoing().build(),
|
||||
];
|
||||
let messages = vec![TestMessageBuilder::new("Hello", 1).outgoing().build()];
|
||||
let mut app = TestAppBuilder::new()
|
||||
.with_chats(vec![create_test_chat("Chat", 101)])
|
||||
.selected_chat(101)
|
||||
@@ -127,9 +121,9 @@ async fn test_close_chat_resets_input_mode() {
|
||||
/// Auto-Insert при Reply (`r` в MessageSelection)
|
||||
#[tokio::test]
|
||||
async fn test_reply_auto_enters_insert_mode() {
|
||||
let messages = vec![
|
||||
TestMessageBuilder::new("Hello from friend", 1).sender("Friend").build(),
|
||||
];
|
||||
let messages = vec![TestMessageBuilder::new("Hello from friend", 1)
|
||||
.sender("Friend")
|
||||
.build()];
|
||||
let mut app = TestAppBuilder::new()
|
||||
.with_chats(vec![create_test_chat("Chat", 101)])
|
||||
.selected_chat(101)
|
||||
@@ -149,9 +143,7 @@ async fn test_reply_auto_enters_insert_mode() {
|
||||
/// Auto-Insert при Edit (Enter в MessageSelection)
|
||||
#[tokio::test]
|
||||
async fn test_edit_auto_enters_insert_mode() {
|
||||
let messages = vec![
|
||||
TestMessageBuilder::new("My message", 1).outgoing().build(),
|
||||
];
|
||||
let messages = vec![TestMessageBuilder::new("My message", 1).outgoing().build()];
|
||||
let mut app = TestAppBuilder::new()
|
||||
.with_chats(vec![create_test_chat("Chat", 101)])
|
||||
.selected_chat(101)
|
||||
@@ -248,9 +240,7 @@ async fn test_k_types_in_insert_mode() {
|
||||
/// `d` в Insert mode → набирает "d", НЕ удаляет сообщение
|
||||
#[tokio::test]
|
||||
async fn test_d_types_in_insert_mode() {
|
||||
let messages = vec![
|
||||
TestMessageBuilder::new("Hello", 1).outgoing().build(),
|
||||
];
|
||||
let messages = vec![TestMessageBuilder::new("Hello", 1).outgoing().build()];
|
||||
let mut app = TestAppBuilder::new()
|
||||
.with_chats(vec![create_test_chat("Chat", 101)])
|
||||
.selected_chat(101)
|
||||
@@ -268,9 +258,7 @@ async fn test_d_types_in_insert_mode() {
|
||||
/// `r` в Insert mode → набирает "r", НЕ reply
|
||||
#[tokio::test]
|
||||
async fn test_r_types_in_insert_mode() {
|
||||
let messages = vec![
|
||||
TestMessageBuilder::new("Hello", 1).build(),
|
||||
];
|
||||
let messages = vec![TestMessageBuilder::new("Hello", 1).build()];
|
||||
let mut app = TestAppBuilder::new()
|
||||
.with_chats(vec![create_test_chat("Chat", 101)])
|
||||
.selected_chat(101)
|
||||
@@ -395,9 +383,7 @@ async fn test_k_navigates_in_normal_mode() {
|
||||
/// `d` в Normal mode → показывает подтверждение удаления
|
||||
#[tokio::test]
|
||||
async fn test_d_deletes_in_normal_mode() {
|
||||
let messages = vec![
|
||||
TestMessageBuilder::new("My message", 1).outgoing().build(),
|
||||
];
|
||||
let messages = vec![TestMessageBuilder::new("My message", 1).outgoing().build()];
|
||||
let mut app = TestAppBuilder::new()
|
||||
.with_chats(vec![create_test_chat("Chat", 101)])
|
||||
.selected_chat(101)
|
||||
@@ -488,9 +474,7 @@ async fn test_ctrl_e_moves_to_end_in_insert() {
|
||||
/// Esc из Insert при активном Reply → отменяет reply + Normal + MessageSelection
|
||||
#[tokio::test]
|
||||
async fn test_esc_from_insert_cancels_reply() {
|
||||
let messages = vec![
|
||||
TestMessageBuilder::new("Hello", 1).sender("Friend").build(),
|
||||
];
|
||||
let messages = vec![TestMessageBuilder::new("Hello", 1).sender("Friend").build()];
|
||||
let mut app = TestAppBuilder::new()
|
||||
.with_chats(vec![create_test_chat("Chat", 101)])
|
||||
.selected_chat(101)
|
||||
@@ -512,9 +496,7 @@ async fn test_esc_from_insert_cancels_reply() {
|
||||
/// Esc из Insert при активном Editing → отменяет editing + Normal + MessageSelection
|
||||
#[tokio::test]
|
||||
async fn test_esc_from_insert_cancels_editing() {
|
||||
let messages = vec![
|
||||
TestMessageBuilder::new("My message", 1).outgoing().build(),
|
||||
];
|
||||
let messages = vec![TestMessageBuilder::new("My message", 1).outgoing().build()];
|
||||
let mut app = TestAppBuilder::new()
|
||||
.with_chats(vec![create_test_chat("Chat", 101)])
|
||||
.selected_chat(101)
|
||||
@@ -564,9 +546,7 @@ async fn test_normal_mode_auto_enters_selection_on_any_key() {
|
||||
/// Полный цикл: Normal → i → набор текста → Esc → Normal
|
||||
#[tokio::test]
|
||||
async fn test_full_mode_cycle() {
|
||||
let messages = vec![
|
||||
TestMessageBuilder::new("Msg", 1).build(),
|
||||
];
|
||||
let messages = vec![TestMessageBuilder::new("Msg", 1).build()];
|
||||
let mut app = TestAppBuilder::new()
|
||||
.with_chats(vec![create_test_chat("Chat", 101)])
|
||||
.selected_chat(101)
|
||||
@@ -599,9 +579,9 @@ async fn test_full_mode_cycle() {
|
||||
/// Полный цикл: Normal → r (reply) → набор → Enter (отправка) → остаёмся в Insert
|
||||
#[tokio::test]
|
||||
async fn test_reply_send_stays_insert() {
|
||||
let messages = vec![
|
||||
TestMessageBuilder::new("Question?", 1).sender("Friend").build(),
|
||||
];
|
||||
let messages = vec![TestMessageBuilder::new("Question?", 1)
|
||||
.sender("Friend")
|
||||
.build()];
|
||||
let mut app = TestAppBuilder::new()
|
||||
.with_chats(vec![create_test_chat("Chat", 101)])
|
||||
.selected_chat(101)
|
||||
|
||||
Reference in New Issue
Block a user