Primitives now use color closures when printed on the command line (#7650)

# Description

Closes #7554


![image](https://user-images.githubusercontent.com/83939/210177700-4890fcf2-1be9-4da9-9974-58d4ed403430.png)

# User-Facing Changes

See above.

# 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` to check that you're using the standard code
style
- `cargo test --workspace` to check that all tests pass

# 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.

Co-authored-by: Reilly Wood <26268125+rgwood@users.noreply.github.com>
This commit is contained in:
Leon
2023-01-04 17:59:10 +10:00
committed by GitHub
parent 95d4922e44
commit c5639cd9fa
10 changed files with 104 additions and 27 deletions

View File

@ -6,12 +6,18 @@ fn test_default_config_path() {
let cwd = std::env::current_dir().expect("Could not get current working directory");
let config_path = config_dir.join("nushell").join("config.nu");
let actual = nu!(cwd: &cwd, "$nu.config-path");
assert_eq!(actual.out, config_path.to_string_lossy().to_string());
let actual = nu!(cwd: &cwd, minimal_config: false, "$nu.config-path");
assert_eq!(
nu_utils::strip_ansi_string_likely(actual.out),
config_path.to_string_lossy().to_string()
);
let env_path = config_dir.join("nushell").join("env.nu");
let actual = nu!(cwd: &cwd, "$nu.env-path");
assert_eq!(actual.out, env_path.to_string_lossy().to_string());
assert_eq!(
nu_utils::strip_ansi_string_likely(actual.out),
env_path.to_string_lossy().to_string()
);
}
#[test]
@ -25,14 +31,21 @@ fn test_alternate_config_path() {
nu_path::canonicalize_with(config_file, &cwd).expect("Could not get config path");
let actual = nu!(
cwd: &cwd,
minimal_config: false,
format!("nu --config {:?} -c '$nu.config-path'", config_path)
);
assert_eq!(actual.out, config_path.to_string_lossy().to_string());
assert_eq!(
nu_utils::strip_ansi_string_likely(actual.out),
config_path.to_string_lossy().to_string()
);
let env_path = nu_path::canonicalize_with(env_file, &cwd).expect("Could not get env path");
let actual = nu!(
cwd: &cwd,
format!("nu --env-config {:?} -c '$nu.env-path'", env_path)
);
assert_eq!(actual.out, env_path.to_string_lossy().to_string());
assert_eq!(
nu_utils::strip_ansi_string_likely(actual.out),
env_path.to_string_lossy().to_string()
);
}