fixes
This commit is contained in:
171
tests/chat_list.rs
Normal file
171
tests/chat_list.rs
Normal file
@@ -0,0 +1,171 @@
|
||||
// Chat list UI snapshot tests
|
||||
|
||||
mod helpers;
|
||||
|
||||
use helpers::test_data::{TestChatBuilder, create_test_chat};
|
||||
use helpers::app_builder::TestAppBuilder;
|
||||
use helpers::snapshot_utils::{render_to_buffer, buffer_to_string};
|
||||
use insta::assert_snapshot;
|
||||
|
||||
#[test]
|
||||
fn snapshot_empty_chat_list() {
|
||||
let mut app = TestAppBuilder::new().build();
|
||||
|
||||
let buffer = render_to_buffer(80, 24, |f| {
|
||||
tele_tui::ui::chat_list::render(f, f.area(), &mut app);
|
||||
});
|
||||
|
||||
let output = buffer_to_string(&buffer);
|
||||
assert_snapshot!("empty_chat_list", output);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn snapshot_chat_list_with_three_chats() {
|
||||
let chat1 = create_test_chat("Mom", 123);
|
||||
let chat2 = create_test_chat("Boss", 456);
|
||||
let chat3 = create_test_chat("Rust Community", 789);
|
||||
|
||||
let mut app = TestAppBuilder::new()
|
||||
.with_chats(vec![chat1, chat2, chat3])
|
||||
.build();
|
||||
|
||||
let buffer = render_to_buffer(80, 24, |f| {
|
||||
tele_tui::ui::chat_list::render(f, f.area(), &mut app);
|
||||
});
|
||||
|
||||
let output = buffer_to_string(&buffer);
|
||||
assert_snapshot!("chat_list_three_chats", output);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn snapshot_chat_with_unread_count() {
|
||||
let chat = TestChatBuilder::new("Mom", 123)
|
||||
.unread_count(5)
|
||||
.last_message("Привет, как дела?")
|
||||
.build();
|
||||
|
||||
let mut app = TestAppBuilder::new()
|
||||
.with_chat(chat)
|
||||
.build();
|
||||
|
||||
let buffer = render_to_buffer(80, 24, |f| {
|
||||
tele_tui::ui::chat_list::render(f, f.area(), &mut app);
|
||||
});
|
||||
|
||||
let output = buffer_to_string(&buffer);
|
||||
assert_snapshot!("chat_with_unread", output);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn snapshot_chat_with_pinned() {
|
||||
let chat = TestChatBuilder::new("Important Chat", 123)
|
||||
.pinned()
|
||||
.last_message("Pinned message")
|
||||
.build();
|
||||
|
||||
let mut app = TestAppBuilder::new()
|
||||
.with_chat(chat)
|
||||
.build();
|
||||
|
||||
let buffer = render_to_buffer(80, 24, |f| {
|
||||
tele_tui::ui::chat_list::render(f, f.area(), &mut app);
|
||||
});
|
||||
|
||||
let output = buffer_to_string(&buffer);
|
||||
assert_snapshot!("chat_pinned", output);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn snapshot_chat_with_muted() {
|
||||
let chat = TestChatBuilder::new("Spam Group", 123)
|
||||
.muted()
|
||||
.unread_count(99)
|
||||
.last_message("Too many messages")
|
||||
.build();
|
||||
|
||||
let mut app = TestAppBuilder::new()
|
||||
.with_chat(chat)
|
||||
.build();
|
||||
|
||||
let buffer = render_to_buffer(80, 24, |f| {
|
||||
tele_tui::ui::chat_list::render(f, f.area(), &mut app);
|
||||
});
|
||||
|
||||
let output = buffer_to_string(&buffer);
|
||||
assert_snapshot!("chat_muted", output);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn snapshot_chat_with_mentions() {
|
||||
let chat = TestChatBuilder::new("Work Group", 123)
|
||||
.unread_count(10)
|
||||
.unread_mentions(2)
|
||||
.last_message("@me check this out")
|
||||
.build();
|
||||
|
||||
let mut app = TestAppBuilder::new()
|
||||
.with_chat(chat)
|
||||
.build();
|
||||
|
||||
let buffer = render_to_buffer(80, 24, |f| {
|
||||
tele_tui::ui::chat_list::render(f, f.area(), &mut app);
|
||||
});
|
||||
|
||||
let output = buffer_to_string(&buffer);
|
||||
assert_snapshot!("chat_with_mentions", output);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn snapshot_selected_chat() {
|
||||
let chat1 = create_test_chat("Mom", 123);
|
||||
let chat2 = create_test_chat("Boss", 456);
|
||||
|
||||
let mut app = TestAppBuilder::new()
|
||||
.with_chats(vec![chat1, chat2])
|
||||
.selected_chat(123)
|
||||
.build();
|
||||
|
||||
let buffer = render_to_buffer(80, 24, |f| {
|
||||
tele_tui::ui::chat_list::render(f, f.area(), &mut app);
|
||||
});
|
||||
|
||||
let output = buffer_to_string(&buffer);
|
||||
assert_snapshot!("chat_selected", output);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn snapshot_chat_long_title() {
|
||||
let chat = TestChatBuilder::new("Very Long Chat Title That Should Be Truncated", 123)
|
||||
.last_message("Test message")
|
||||
.build();
|
||||
|
||||
let mut app = TestAppBuilder::new()
|
||||
.with_chat(chat)
|
||||
.build();
|
||||
|
||||
let buffer = render_to_buffer(80, 24, |f| {
|
||||
tele_tui::ui::chat_list::render(f, f.area(), &mut app);
|
||||
});
|
||||
|
||||
let output = buffer_to_string(&buffer);
|
||||
assert_snapshot!("chat_long_title", output);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn snapshot_chat_search_mode() {
|
||||
let chat1 = create_test_chat("Mom", 123);
|
||||
let chat2 = create_test_chat("Boss", 456);
|
||||
let chat3 = create_test_chat("Rust Community", 789);
|
||||
|
||||
let mut app = TestAppBuilder::new()
|
||||
.with_chats(vec![chat1, chat2, chat3])
|
||||
.searching("Mom")
|
||||
.build();
|
||||
|
||||
let buffer = render_to_buffer(80, 24, |f| {
|
||||
tele_tui::ui::chat_list::render(f, f.area(), &mut app);
|
||||
});
|
||||
|
||||
let output = buffer_to_string(&buffer);
|
||||
assert_snapshot!("chat_list_search_mode", output);
|
||||
}
|
||||
Reference in New Issue
Block a user