forked from extern/nushell
Show error when trying to sort by invalid column (#1880)
* Show error when trying to sort by invalid column * Added test for changes * Addressed comments, updated test * Removed unnecessary mutable keyword * Changed split-column to solt column after rebase from upstream
This commit is contained in:
parent
d488fddfe1
commit
9c14fb6c02
@ -69,6 +69,18 @@ fn sort_by(args: CommandArgs, registry: &CommandRegistry) -> Result<OutputStream
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for sort_arg in rest.iter() {
|
||||||
|
let match_test = get_data_by_key(&vec[0], sort_arg.borrow_spanned());
|
||||||
|
if match_test == None {
|
||||||
|
yield Err(ShellError::labeled_error(
|
||||||
|
"Can not find column to sort by",
|
||||||
|
"invalid column",
|
||||||
|
sort_arg.borrow_spanned().span,
|
||||||
|
));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
match &vec[0] {
|
match &vec[0] {
|
||||||
Value {
|
Value {
|
||||||
value: UntaggedValue::Primitive(_),
|
value: UntaggedValue::Primitive(_),
|
||||||
|
@ -22,6 +22,29 @@ fn by_column() {
|
|||||||
assert_eq!(actual.out, "description");
|
assert_eq!(actual.out, "description");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn by_invalid_column() {
|
||||||
|
let actual = nu!(
|
||||||
|
cwd: "tests/fixtures/formats", pipeline(
|
||||||
|
r#"
|
||||||
|
open cargo_sample.toml --raw
|
||||||
|
| lines
|
||||||
|
| skip 1
|
||||||
|
| first 4
|
||||||
|
| split column "="
|
||||||
|
| sort-by ColumnThatDoesNotExist
|
||||||
|
| skip 1
|
||||||
|
| first 1
|
||||||
|
| get Column1
|
||||||
|
| trim
|
||||||
|
| echo $it
|
||||||
|
"#
|
||||||
|
));
|
||||||
|
|
||||||
|
assert!(actual.err.contains("Can not find column to sort by"));
|
||||||
|
assert!(actual.err.contains("invalid column"));
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn sort_primitive_values() {
|
fn sort_primitive_values() {
|
||||||
let actual = nu!(
|
let actual = nu!(
|
||||||
|
Loading…
Reference in New Issue
Block a user