mirror of
https://github.com/nushell/nushell
synced 2024-12-26 13:03:07 +00:00
0872e9c3ae
# Description Fix #14544 and is also the reciprocal of #14549. Before: If both a const and env `NU_PLUGIN_DIRS` were defined at the same time, the env paths would not be used. After: The directories from `const NU_PLUGIN_DIRS` are searched for a matching filename, and if not found, `$env.NU_PLUGIN_DIRS` directories will be searched. Before: `$env.NU_PLUGIN_DIRS` was unnecessary set both in main() and in default_env.nu After: `$env.NU_PLUGIN_DIRS` is only set in main() Before: `$env.NU_PLUGIN_DIRS` was set to `plugins` in the config directory After: `$env.NU_PLUGIN_DIRS` is set to an empty list and `const NU_PLUGIN_DIRS` is set to the directory above. Also updates `sample_env.nu` to use the `const` # User-Facing Changes Most scenarios should work just fine as there continues to be an `$env.NU_PLUGIN_DIRS` to append to or override. However, there is a small chance of a breaking change if someone was *querying* the old default `$env.NU_PLUGIN_DIRS`. # Tests + Formatting - 🟢 `toolkit fmt` - 🟢 `toolkit clippy` - 🟢 `toolkit test` - 🟢 `toolkit test stdlib` Also updated the `env` tests and added one for the `const`. # After Submitting Config doc updates
49 lines
1.3 KiB
Rust
49 lines
1.3 KiB
Rust
use crate::repl::tests::{fail_test, run_test, TestResult};
|
|
use nu_test_support::nu;
|
|
|
|
#[test]
|
|
fn shorthand_env_1() -> TestResult {
|
|
run_test(r#"FOO=BAZ $env.FOO"#, "BAZ")
|
|
}
|
|
|
|
#[test]
|
|
fn shorthand_env_2() -> TestResult {
|
|
fail_test(r#"FOO=BAZ FOO=MOO $env.FOO"#, "defined_twice")
|
|
}
|
|
|
|
#[test]
|
|
fn shorthand_env_3() -> TestResult {
|
|
run_test(r#"FOO=BAZ BAR=MOO $env.FOO"#, "BAZ")
|
|
}
|
|
|
|
#[test]
|
|
fn default_nu_lib_dirs_env_type() {
|
|
// Previously, this was a list<string>
|
|
// While we are transitioning to const NU_LIB_DIRS
|
|
// the env version will be empty, and thus a
|
|
// list<any>
|
|
let actual = nu!("$env.NU_LIB_DIRS | describe");
|
|
assert_eq!(actual.out, "list<any>");
|
|
}
|
|
|
|
#[test]
|
|
fn default_nu_lib_dirs_type() {
|
|
let actual = nu!("$NU_LIB_DIRS | describe");
|
|
assert_eq!(actual.out, "list<string>");
|
|
}
|
|
|
|
#[test]
|
|
fn default_nu_plugin_dirs_env_type() {
|
|
// Previously, this was a list<string>
|
|
// While we are transitioning to const NU_PLUGIN_DIRS
|
|
// the env version will be empty, and thus a
|
|
// list<any>
|
|
let actual = nu!("$env.NU_PLUGIN_DIRS | describe");
|
|
assert_eq!(actual.out, "list<any>");
|
|
}
|
|
|
|
#[test]
|
|
fn default_nu_plugin_dirs_type() {
|
|
let actual = nu!("$NU_PLUGIN_DIRS | describe");
|
|
assert_eq!(actual.out, "list<string>");
|
|
}
|