use nu_test_support::{nu, pipeline}; use super::join_path_sep; #[test] fn returns_basename_of_empty_input() { let actual = nu!( cwd: "tests", pipeline( r#" echo "" | path basename "# )); assert_eq!(actual.out, ""); } #[test] fn replaces_basename_of_empty_input() { let actual = nu!( cwd: "tests", pipeline( r#" echo "" | path basename --replace newname.txt "# )); assert_eq!(actual.out, "newname.txt"); } #[test] fn returns_basename_of_path_ending_with_dot() { let actual = nu!( cwd: "tests", pipeline( r#" echo "some/file.txt/." | path basename "# )); assert_eq!(actual.out, "file.txt"); } #[test] fn replaces_basename_of_path_ending_with_dot() { let actual = nu!( cwd: "tests", pipeline( r#" echo "some/file.txt/." | path basename --replace viking.txt "# )); let expected = join_path_sep(&["some", "viking.txt"]); assert_eq!(actual.out, expected); } #[test] fn returns_basename_of_path_ending_with_double_dot() { let actual = nu!( cwd: "tests", pipeline( r#" echo "some/file.txt/.." | path basename "# )); assert_eq!(actual.out, ""); } #[test] fn replaces_basename_of_path_ending_with_double_dot() { let actual = nu!( cwd: "tests", pipeline( r#" echo "some/file.txt/.." | path basename --replace eggs "# )); let expected = join_path_sep(&["some/file.txt/..", "eggs"]); assert_eq!(actual.out, expected); } #[test] fn const_path_basename() { let actual = nu!("const name = ('spam/eggs.txt' | path basename); $name"); assert_eq!(actual.out, "eggs.txt"); }