nushell/tests/plugins/nu_plugin_nu_example.rs
Ian Manske d56457d63e
Path migration part 2: nu-test-support (#13329)
# Description
Part 2 of replacing `std::path` types with `nu_path` types added in
#13115. This PR targets `nu-test-support`.
2024-07-12 02:43:10 +00:00

43 lines
1.4 KiB
Rust

use assert_cmd::Command;
#[test]
fn call() {
// Add the `nu` binaries to the path env
let path_env = std::env::join_paths(
std::iter::once(nu_test_support::fs::binaries().into()).chain(
std::env::var_os(nu_test_support::NATIVE_PATH_ENV_VAR)
.as_deref()
.map(std::env::split_paths)
.into_iter()
.flatten(),
),
)
.expect("failed to make path var");
let assert = Command::new(nu_test_support::fs::executable_path())
.env(nu_test_support::NATIVE_PATH_ENV_VAR, path_env)
.args([
"--no-config-file",
"--no-std-lib",
"--plugins",
&format!(
"[crates{0}nu_plugin_nu_example{0}nu_plugin_nu_example.nu]",
std::path::MAIN_SEPARATOR
),
"--commands",
"nu_plugin_nu_example 4242 teststring",
])
.assert()
.success();
let output = assert.get_output();
let stdout = String::from_utf8_lossy(&output.stdout);
let stderr = String::from_utf8_lossy(&output.stderr);
assert!(stdout.contains("one"));
assert!(stdout.contains("two"));
assert!(stdout.contains("three"));
assert!(stderr.contains("name: nu_plugin_nu_example"));
assert!(stderr.contains("4242"));
assert!(stderr.contains("teststring"));
}