From 3cce61f85465345dad994a97989dc07a31c1d89c Mon Sep 17 00:00:00 2001 From: "andy.boot" Date: Mon, 28 Jul 2025 22:20:37 +0100 Subject: [PATCH] tests: add test for d0 Test to stop bug in previous commit occuring Also cargo clippy --- src/filter.rs | 34 ++++++++++++++++------------------ tests/test_flags.rs | 8 ++++++++ 2 files changed, 24 insertions(+), 18 deletions(-) diff --git a/src/filter.rs b/src/filter.rs index 6f261e4..61d07ed 100644 --- a/src/filter.rs +++ b/src/filter.rs @@ -32,25 +32,23 @@ pub fn get_biggest( if number_top_level_nodes == 0 { root = total_node_builder(0, vec![]) - } else { - if number_top_level_nodes > 1 { - let size = if by_filetime.is_some() { - top_level_nodes - .iter() - .map(|node| node.size) - .max() - .unwrap_or(0) - } else { - top_level_nodes.iter().map(|node| node.size).sum() - }; - - let nodes = handle_duplicate_top_level_names(top_level_nodes, display_data.short_paths); - root = total_node_builder(size, nodes); - heap = always_add_children(&display_data, &root, heap); + } else if number_top_level_nodes > 1 { + let size = if by_filetime.is_some() { + top_level_nodes + .iter() + .map(|node| node.size) + .max() + .unwrap_or(0) } else { - root = top_level_nodes.into_iter().next().unwrap(); - heap = add_children(&display_data, &root, heap); - } + top_level_nodes.iter().map(|node| node.size).sum() + }; + + let nodes = handle_duplicate_top_level_names(top_level_nodes, display_data.short_paths); + root = total_node_builder(size, nodes); + heap = always_add_children(&display_data, &root, heap); + } else { + root = top_level_nodes.into_iter().next().unwrap(); + heap = add_children(&display_data, &root, heap); } fill_remaining_lines(heap, &root, display_data, keep_collapsed) diff --git a/tests/test_flags.rs b/tests/test_flags.rs index 64a7486..17df511 100644 --- a/tests/test_flags.rs +++ b/tests/test_flags.rs @@ -62,6 +62,14 @@ pub fn test_d_flag_works() { assert!(!output.contains("hello_file")); } +#[test] +pub fn test_d0_works_on_multiple() { + // We should see the top level directory but not the sub dirs / files: + let output = build_command(vec!["-d", "0", "tests/test_dir/", "tests/test_dir2"]); + assert!(output.contains("test_dir ")); + assert!(output.contains("test_dir2")); +} + #[test] pub fn test_threads_flag_works() { let output = build_command(vec!["-T", "1", "tests/test_dir/"]);