// Footer UI snapshot tests mod helpers; use helpers::app_builder::TestAppBuilder; use helpers::snapshot_utils::{buffer_to_string, render_to_buffer}; use helpers::test_data::create_test_chat; use insta::assert_snapshot; use tele_tui::tdlib::NetworkState; #[test] fn snapshot_footer_chat_list() { let chat = create_test_chat("Mom", 123); let app = TestAppBuilder::new().with_chat(chat).build(); let buffer = render_to_buffer(80, 24, |f| { tele_tui::ui::footer::render(f, f.area(), &app); }); let output = buffer_to_string(&buffer); assert_snapshot!("footer_chat_list", output); } #[test] fn snapshot_footer_open_chat() { let chat = create_test_chat("Mom", 123); let mut app = TestAppBuilder::new() .with_chat(chat) .selected_chat(123) .build(); let buffer = render_to_buffer(80, 24, |f| { tele_tui::ui::footer::render(f, f.area(), &app); }); let output = buffer_to_string(&buffer); assert_snapshot!("footer_open_chat", output); } #[test] fn snapshot_footer_network_waiting() { let chat = create_test_chat("Mom", 123); let mut app = TestAppBuilder::new().with_chat(chat).build(); // Set network state to WaitingForNetwork app.td_client.network_state = NetworkState::WaitingForNetwork; let buffer = render_to_buffer(80, 24, |f| { tele_tui::ui::footer::render(f, f.area(), &app); }); let output = buffer_to_string(&buffer); assert_snapshot!("footer_network_waiting", output); } #[test] fn snapshot_footer_network_connecting_proxy() { let chat = create_test_chat("Mom", 123); let mut app = TestAppBuilder::new().with_chat(chat).build(); // Set network state to ConnectingToProxy app.td_client.network_state = NetworkState::ConnectingToProxy; let buffer = render_to_buffer(80, 24, |f| { tele_tui::ui::footer::render(f, f.area(), &app); }); let output = buffer_to_string(&buffer); assert_snapshot!("footer_network_connecting_proxy", output); } #[test] fn snapshot_footer_network_connecting() { let chat = create_test_chat("Mom", 123); let mut app = TestAppBuilder::new().with_chat(chat).build(); // Set network state to Connecting app.td_client.network_state = NetworkState::Connecting; let buffer = render_to_buffer(80, 24, |f| { tele_tui::ui::footer::render(f, f.area(), &app); }); let output = buffer_to_string(&buffer); assert_snapshot!("footer_network_connecting", output); } #[test] fn snapshot_footer_search_mode() { let chat = create_test_chat("Mom", 123); let mut app = TestAppBuilder::new() .with_chat(chat) .searching("query") .build(); let buffer = render_to_buffer(80, 24, |f| { tele_tui::ui::footer::render(f, f.area(), &app); }); let output = buffer_to_string(&buffer); assert_snapshot!("footer_search_mode", output); }