Split core and TUI crates
This commit is contained in:
108
crates/tele-tui/tests/footer.rs
Normal file
108
crates/tele-tui/tests/footer.rs
Normal file
@@ -0,0 +1,108 @@
|
||||
// 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 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 app = TestAppBuilder::new().with_chat(chat).build();
|
||||
|
||||
// Set network state to WaitingForNetwork
|
||||
*app.td_client.network_state.lock().unwrap() = 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 app = TestAppBuilder::new().with_chat(chat).build();
|
||||
|
||||
// Set network state to ConnectingToProxy
|
||||
*app.td_client.network_state.lock().unwrap() = 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 app = TestAppBuilder::new().with_chat(chat).build();
|
||||
|
||||
// Set network state to Connecting
|
||||
*app.td_client.network_state.lock().unwrap() = 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 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);
|
||||
}
|
||||
Reference in New Issue
Block a user