#[cfg(test)]
mod tests {
use std::env;
#[test]
fn test_go_to_home_state_change() {
let mut app = crate::app::App::new();
app.starting_dir = "/".to_string();
app.init().expect("init failed");
let original_path = {
use crate::filesystem::get_string_abs_path;
get_string_abs_path(&app.parent_file_nodes)
};
app.go_to_home();
let new_path = {
use crate::filesystem::get_string_abs_path;
get_string_abs_path(&app.parent_file_nodes)
};
let home = env::var("HOME").expect("HOME not set");
assert_ne!(original_path, new_path, "path should have changed");
assert!(
new_path.starts_with(&home) || new_path == home,
"new path {} should be in home {}",
new_path,
home
);
assert!(!app.child_file_nodes.is_empty(), "child_file_nodes should be populated");
}
#[test]
fn test_render_called_after_state_change() {
let mut app = crate::app::App::new();
app.starting_dir = "/".to_string();
app.init().expect("init failed");
let initial_tree_nodes_len = app.child_tree_nodes.len();
app.go_to_home();
assert!(
app.child_tree_nodes.len() > 0,
"tree nodes should be populated after go_to_home"
);
}
}