use nu_test_support::fs::Stub::EmptyFile; use nu_test_support::playground::Playground; use nu_test_support::{nu, pipeline}; #[test] fn find_with_list_search_with_string() { let actual = nu!( cwd: ".", pipeline( r#" [moe larry curly] | find moe | get 0 "# )); assert_eq!(actual.out, "moe"); } #[test] fn find_with_list_search_with_char() { let actual = nu!( cwd: ".", pipeline( r#" [moe larry curly] | find l | to json -r "# )); assert_eq!(actual.out, r#"["larry","curly"]"#); } #[test] fn find_with_list_search_with_number() { let actual = nu!( cwd: ".", pipeline( r#" [1 2 3 4 5] | find 3 | get 0 "# )); assert_eq!(actual.out, "3"); } #[test] fn find_with_string_search_with_string() { let actual = nu!( cwd: ".", pipeline( r#" echo Cargo.toml | find toml "# )); assert_eq!(actual.out, "Cargo.toml"); } #[test] fn find_with_string_search_with_string_not_found() { let actual = nu!( cwd: ".", pipeline( r#" [moe larry curly] | find shemp | is-empty "# )); assert_eq!(actual.out, "true"); } #[test] fn find_with_filepath_search_with_string() { Playground::setup("filepath_test_1", |dirs, sandbox| { sandbox.with_files(vec![ EmptyFile("amigos.txt"), EmptyFile("arepas.clu"), EmptyFile("los.txt"), EmptyFile("tres.txt"), ]); let actual = nu!( cwd: dirs.test(), pipeline( r#" ls | get name | find arep | to json -r "# )); assert_eq!(actual.out, r#"["arepas.clu"]"#); }) } #[test] fn find_with_filepath_search_with_multiple_patterns() { Playground::setup("filepath_test_2", |dirs, sandbox| { sandbox.with_files(vec![ EmptyFile("amigos.txt"), EmptyFile("arepas.clu"), EmptyFile("los.txt"), EmptyFile("tres.txt"), ]); let actual = nu!( cwd: dirs.test(), pipeline( r#" ls | get name | find arep ami | to json -r "# )); assert_eq!(actual.out, r#"["amigos.txt","arepas.clu"]"#); }) } #[test] fn find_takes_into_account_linebreaks_in_string() { let actual = nu!( cwd: ".", pipeline( r#" "atest\nanothertest\nnohit\n" | find a | length "# )); assert_eq!(actual.out, "2"); }