fpv 0.1.12

A minimal, keyboard-first TUI file previewer with syntax highlighting
Documentation
use fpv::app::navigation::refresh_current_directory;
use fpv::app::navigation_result::ActionOutcome;
use fpv::app::state::SessionState;
use std::fs;
use tempfile::tempdir;

#[test]
fn refreshing_unreachable_current_directory_sets_error_state() {
    let d = tempdir().expect("tempdir");
    let missing = d.path().join("missing");
    fs::create_dir_all(&missing).expect("mkdir");

    let mut state = SessionState::new(missing.clone());
    let mut nodes = Vec::new();

    fs::remove_dir_all(&missing).expect("remove dir");

    let result = refresh_current_directory(&mut state, &mut nodes).expect("refresh");
    assert_eq!(result.outcome, ActionOutcome::Blocked);
    assert!(nodes.is_empty());
    assert_eq!(state.current_path, missing);
    assert_eq!(state.selected_path, state.current_path);
    assert_eq!(state.current_dir_error.as_deref(), Some("Directory unreachable."));
}