use regex::Regex;
use uutests::new_ucmd;
use uutests::util::TestScenario;
use uutests::util_name;
#[test]
fn test_dir() {
new_ucmd!().succeeds();
}
#[test]
fn test_default_output() {
let scene = TestScenario::new(util_name!());
let at = &scene.fixtures;
at.mkdir("some-dir1");
at.touch("some-file1");
scene.ucmd().succeeds().stdout_contains("some-file1");
scene
.ucmd()
.succeeds()
.stdout_does_not_match(&Regex::new("[rwx-]{10}.*some-file1$").unwrap());
}
#[test]
fn test_long_output() {
let scene = TestScenario::new(util_name!());
let at = &scene.fixtures;
at.mkdir("some-dir1");
at.touch("some-file1");
scene
.ucmd()
.arg("-l")
.succeeds()
.stdout_contains("some-file1");
scene
.ucmd()
.arg("-l")
.succeeds()
.stdout_matches(&Regex::new("[rwx-]{10}.*some-file1\n$").unwrap());
}
#[test]
fn test_invalid_option_exit_code() {
new_ucmd!().arg("-/").fails().code_is(2);
}
#[test]
fn test_help_shows_dir_not_ls() {
let result = new_ucmd!().arg("--help").succeeds();
let output = result.stdout_str();
assert!(
output.contains("dir [OPTION]"),
"Help should show 'dir [OPTION]'"
);
assert!(
!output.contains("ls [OPTION]"),
"Help should not show 'ls [OPTION]'"
);
}
#[test]
fn test_version() {
new_ucmd!()
.arg("--version")
.succeeds()
.no_stderr()
.stdout_is(format!("dir {}\n", uucore::crate_version!()));
}