forked from extern/nushell
798a24eda5
* Soften restrictions for external parameters * Add test
124 lines
2.8 KiB
Rust
124 lines
2.8 KiB
Rust
use nu_test_support::{nu, nu_error};
|
|
|
|
// #[test]
|
|
// fn shows_error_for_command_that_fails() {
|
|
// let actual = nu_error!(
|
|
// cwd: ".",
|
|
// "fail"
|
|
// );
|
|
|
|
// assert!(actual.contains("External command failed"));
|
|
// }
|
|
|
|
#[test]
|
|
fn shows_error_for_command_not_found() {
|
|
let actual = nu_error!(
|
|
cwd: ".",
|
|
"ferris_is_not_here.exe"
|
|
);
|
|
|
|
assert!(actual.contains("Command not found"));
|
|
}
|
|
|
|
mod it_evaluation {
|
|
use super::nu;
|
|
use nu_test_support::fs::Stub::{EmptyFile, FileWithContentToBeTrimmed};
|
|
use nu_test_support::{pipeline, playground::Playground};
|
|
|
|
#[test]
|
|
fn takes_rows_of_nu_value_strings() {
|
|
Playground::setup("it_argument_test_1", |dirs, sandbox| {
|
|
sandbox.with_files(vec![
|
|
EmptyFile("jonathan_likes_cake.txt"),
|
|
EmptyFile("andres_likes_arepas.txt"),
|
|
]);
|
|
|
|
let actual = nu!(
|
|
cwd: dirs.test(), pipeline(
|
|
r#"
|
|
ls
|
|
| sort-by name
|
|
| get name
|
|
| cococo $it
|
|
| lines
|
|
| nth 1
|
|
| echo $it
|
|
"#
|
|
));
|
|
|
|
assert_eq!(actual, "jonathan_likes_cake.txt");
|
|
})
|
|
}
|
|
|
|
#[test]
|
|
fn takes_rows_of_nu_value_lines() {
|
|
Playground::setup("it_argument_test_2", |dirs, sandbox| {
|
|
sandbox.with_files(vec![FileWithContentToBeTrimmed(
|
|
"nu_candies.txt",
|
|
r#"
|
|
AndrásWithKitKatzz
|
|
AndrásWithKitKatz
|
|
"#,
|
|
)]);
|
|
|
|
let actual = nu!(
|
|
cwd: dirs.test(), pipeline(
|
|
r#"
|
|
open nu_candies.txt
|
|
| lines
|
|
| chop $it
|
|
| lines
|
|
| nth 1
|
|
| echo $it
|
|
"#
|
|
));
|
|
|
|
assert_eq!(actual, "AndrásWithKitKat");
|
|
})
|
|
}
|
|
}
|
|
|
|
mod external_words {
|
|
use super::nu;
|
|
|
|
#[test]
|
|
fn relaxed_external_words() {
|
|
let actual = nu!(cwd: ".", r#"
|
|
cococo joturner@foo.bar.baz
|
|
"#);
|
|
|
|
assert_eq!(actual, "joturner@foo.bar.baz");
|
|
}
|
|
}
|
|
|
|
mod tilde_expansion {
|
|
use super::nu;
|
|
|
|
#[test]
|
|
fn as_home_directory_when_passed_as_argument_and_begins_with_tilde() {
|
|
let actual = nu!(
|
|
cwd: ".",
|
|
r#"
|
|
cococo ~
|
|
"#
|
|
);
|
|
|
|
assert!(
|
|
!actual.contains('~'),
|
|
format!("'{}' should not contain ~", actual)
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn does_not_expand_when_passed_as_argument_and_does_not_start_with_tilde() {
|
|
let actual = nu!(
|
|
cwd: ".",
|
|
r#"
|
|
cococo "1~1"
|
|
"#
|
|
);
|
|
|
|
assert_eq!(actual, "1~1");
|
|
}
|
|
}
|