forked from extern/nushell
help generate_docs | flatten crashes nushell (#3099)
* fix case where parent_name was {nu, term} and possibly others in the future by doing an extra test first to see if if the *parent_name key actually exists in cmap * update with help generate_docs testing
This commit is contained in:
parent
596608aa0c
commit
6b2327f231
31
crates/nu-command/tests/commands/help.rs
Normal file
31
crates/nu-command/tests/commands/help.rs
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
use nu_test_support::{nu, pipeline};
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn help_commands_count() {
|
||||||
|
let actual = nu!(
|
||||||
|
cwd: ".", pipeline(
|
||||||
|
r#"
|
||||||
|
help commands | count
|
||||||
|
"#
|
||||||
|
));
|
||||||
|
|
||||||
|
let output = actual.out;
|
||||||
|
let output_int: i32 = output.parse().unwrap();
|
||||||
|
let is_positive = output_int.is_positive();
|
||||||
|
assert!(is_positive);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn help_generate_docs_count() {
|
||||||
|
let actual = nu!(
|
||||||
|
cwd: ".", pipeline(
|
||||||
|
r#"
|
||||||
|
help generate_docs | flatten | count
|
||||||
|
"#
|
||||||
|
));
|
||||||
|
|
||||||
|
let output = actual.out;
|
||||||
|
let output_int: i32 = output.parse().unwrap();
|
||||||
|
let is_positive = output_int.is_positive();
|
||||||
|
assert!(is_positive);
|
||||||
|
}
|
@ -22,6 +22,7 @@ mod get;
|
|||||||
mod group_by;
|
mod group_by;
|
||||||
mod hash_;
|
mod hash_;
|
||||||
mod headers;
|
mod headers;
|
||||||
|
mod help;
|
||||||
mod histogram;
|
mod histogram;
|
||||||
mod insert;
|
mod insert;
|
||||||
mod into_int;
|
mod into_int;
|
||||||
|
@ -67,10 +67,12 @@ pub fn generate_docs(scope: &Scope) -> Value {
|
|||||||
if name.contains(' ') {
|
if name.contains(' ') {
|
||||||
let split_name = name.split_whitespace().collect_vec();
|
let split_name = name.split_whitespace().collect_vec();
|
||||||
let parent_name = split_name.first().expect("Expected a parent command name");
|
let parent_name = split_name.first().expect("Expected a parent command name");
|
||||||
let sub_names = cmap
|
if cmap.contains_key(*parent_name) {
|
||||||
.get_mut(*parent_name)
|
let sub_names = cmap
|
||||||
.expect("Expected a entry for parent");
|
.get_mut(*parent_name)
|
||||||
sub_names.push(name.to_owned());
|
.expect("Expected a entry for parent");
|
||||||
|
sub_names.push(name.to_owned());
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
cmap.insert(name.to_owned(), Vec::new());
|
cmap.insert(name.to_owned(), Vec::new());
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user