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"); } }