mirror of
https://github.com/nushell/nushell
synced 2024-12-28 05:53:09 +00:00
fbf3f7cf1c
# Description This splits off `scope` from `$nu`, creating a set of `scope` commands for the various types of scope you might be interested in. This also simplifies the `$nu` variable a bit. # User-Facing Changes This changes `$nu` to be a bit simpler and introduces a set of `scope` subcommands. # Tests + Formatting <!-- Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect -A clippy::result_large_err` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass - `cargo run -- crates/nu-std/tests/run.nu` to run the tests for the standard library > **Note** > from `nushell` you can also use the `toolkit` as follows > ```bash > use toolkit.nu # or use an `env_change` hook to activate it automatically > toolkit check pr > ``` --> # After Submitting <!-- If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. -->
106 lines
2.2 KiB
Rust
106 lines
2.2 KiB
Rust
use nu_test_support::nu;
|
|
use pretty_assertions::assert_eq;
|
|
|
|
#[ignore = "TODO: This shows old-style aliases. New aliases are under commands"]
|
|
#[test]
|
|
fn scope_shows_alias() {
|
|
let actual = nu!(
|
|
cwd: ".",
|
|
r#"alias xaz = echo alias1
|
|
scope aliases | find xaz | length
|
|
"#
|
|
);
|
|
|
|
let length: i32 = actual.out.parse().unwrap();
|
|
assert_eq!(length, 1);
|
|
}
|
|
|
|
#[test]
|
|
fn scope_shows_command() {
|
|
let actual = nu!(
|
|
cwd: ".",
|
|
r#"def xaz [] { echo xaz }
|
|
scope commands | find xaz | length
|
|
"#
|
|
);
|
|
|
|
let length: i32 = actual.out.parse().unwrap();
|
|
assert_eq!(length, 1);
|
|
}
|
|
|
|
#[test]
|
|
fn scope_doesnt_show_scoped_hidden_alias() {
|
|
let actual = nu!(
|
|
cwd: ".",
|
|
r#"alias xaz = echo alias1
|
|
do {
|
|
hide xaz
|
|
scope aliases | find xaz | length
|
|
}
|
|
"#
|
|
);
|
|
|
|
let length: i32 = actual.out.parse().unwrap();
|
|
assert_eq!(length, 0);
|
|
}
|
|
|
|
#[test]
|
|
fn scope_doesnt_show_hidden_alias() {
|
|
let actual = nu!(
|
|
cwd: ".",
|
|
r#"alias xaz = echo alias1
|
|
hide xaz
|
|
scope aliases | find xaz | length
|
|
"#
|
|
);
|
|
|
|
let length: i32 = actual.out.parse().unwrap();
|
|
assert_eq!(length, 0);
|
|
}
|
|
|
|
#[test]
|
|
fn scope_doesnt_show_scoped_hidden_command() {
|
|
let actual = nu!(
|
|
cwd: ".",
|
|
r#"def xaz [] { echo xaz }
|
|
do {
|
|
hide xaz
|
|
scope commands | find xaz | length
|
|
}
|
|
"#
|
|
);
|
|
|
|
let length: i32 = actual.out.parse().unwrap();
|
|
assert_eq!(length, 0);
|
|
}
|
|
|
|
#[test]
|
|
fn scope_doesnt_show_hidden_command() {
|
|
let actual = nu!(
|
|
cwd: ".",
|
|
r#"def xaz [] { echo xaz }
|
|
hide xaz
|
|
scope commands | find xaz | length
|
|
"#
|
|
);
|
|
|
|
let length: i32 = actual.out.parse().unwrap();
|
|
assert_eq!(length, 0);
|
|
}
|
|
|
|
// same problem as 'which' command
|
|
#[ignore]
|
|
#[test]
|
|
fn correctly_report_of_shadowed_alias() {
|
|
let actual = nu!(
|
|
cwd: ".",
|
|
r#"alias xaz = echo alias1
|
|
def helper [] {
|
|
alias xaz = echo alias2
|
|
scope aliases
|
|
}
|
|
helper | where alias == xaz | get expansion.0"#
|
|
);
|
|
|
|
assert_eq!(actual.out, "echo alias2");
|
|
}
|