mirror of
https://github.com/nushell/nushell.git
synced 2025-07-09 19:07:16 +02:00
# Description This PR improves the `metadata set` command by returning a clear error when both `--datasource-filepath` and `--datasource-ls` flags are used together. These flags are meant to be mutually exclusive, and previously this conflicting usage was silently ignored. # User-Facing Changes * Users will now see an error message if they use both `--datasource-filepath` and `--datasource-ls` together in `metadata set`. # Tests + Formatting * [x] Added test at `crates/nu-command/tests/commands/debug/metadata_set.rs` to verify the error behavior. * [x] Ran `cargo fmt --all -- --check` * [x] Ran `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` * [x] Ran `cargo test --workspace` # After Submitting N/A
44 lines
914 B
Rust
44 lines
914 B
Rust
use nu_test_support::nu;
|
|
use nu_test_support::pipeline;
|
|
|
|
#[test]
|
|
fn errors_on_conflicting_metadata_flags() {
|
|
let actual = nu!(
|
|
cwd: ".", pipeline(
|
|
r#"
|
|
echo "foo" | metadata set --datasource-filepath foo.txt --datasource-ls
|
|
"#
|
|
));
|
|
|
|
assert!(actual.err.contains("cannot use `--datasource-filepath`"));
|
|
assert!(actual.err.contains("with `--datasource-ls`"));
|
|
}
|
|
|
|
#[test]
|
|
fn works_with_datasource_filepath() {
|
|
let actual = nu!(
|
|
cwd: ".", pipeline(
|
|
r#"
|
|
echo "foo"
|
|
| metadata set --datasource-filepath foo.txt
|
|
| metadata
|
|
"#
|
|
));
|
|
|
|
assert!(actual.out.contains("foo.txt"));
|
|
}
|
|
|
|
#[test]
|
|
fn works_with_datasource_ls() {
|
|
let actual = nu!(
|
|
cwd: ".", pipeline(
|
|
r#"
|
|
echo "foo"
|
|
| metadata set --datasource-ls
|
|
| metadata
|
|
"#
|
|
));
|
|
|
|
assert!(actual.out.contains("ls"));
|
|
}
|