160 lines
2.8 KiB
Rust
160 lines
2.8 KiB
Rust
|
use std::{fs, process::Command};
|
||
|
|
||
|
use executable_path::executable_path;
|
||
|
|
||
|
use test_utilities::{tempdir, tmptree};
|
||
|
|
||
|
const EXPECTED: &str = "default:\n\techo 'Hello, world!'\n";
|
||
|
|
||
|
#[test]
|
||
|
fn current_dir() {
|
||
|
let tmp = tempdir();
|
||
|
|
||
|
let output = Command::new(executable_path("just"))
|
||
|
.current_dir(tmp.path())
|
||
|
.arg("--init")
|
||
|
.output()
|
||
|
.unwrap();
|
||
|
|
||
|
assert!(output.status.success());
|
||
|
|
||
|
assert_eq!(
|
||
|
fs::read_to_string(tmp.path().join("justfile")).unwrap(),
|
||
|
EXPECTED
|
||
|
);
|
||
|
}
|
||
|
|
||
|
#[test]
|
||
|
fn exists() {
|
||
|
let tmp = tempdir();
|
||
|
|
||
|
let output = Command::new(executable_path("just"))
|
||
|
.current_dir(tmp.path())
|
||
|
.arg("--init")
|
||
|
.output()
|
||
|
.unwrap();
|
||
|
|
||
|
assert!(output.status.success());
|
||
|
|
||
|
let output = Command::new(executable_path("just"))
|
||
|
.current_dir(tmp.path())
|
||
|
.arg("--init")
|
||
|
.output()
|
||
|
.unwrap();
|
||
|
|
||
|
assert!(!output.status.success());
|
||
|
}
|
||
|
|
||
|
#[test]
|
||
|
fn invocation_directory() {
|
||
|
let tmp = tmptree! {
|
||
|
".git": {},
|
||
|
};
|
||
|
|
||
|
let output = Command::new(executable_path("just"))
|
||
|
.current_dir(tmp.path())
|
||
|
.arg("--init")
|
||
|
.output()
|
||
|
.unwrap();
|
||
|
|
||
|
assert!(output.status.success());
|
||
|
|
||
|
assert_eq!(
|
||
|
fs::read_to_string(tmp.path().join("justfile")).unwrap(),
|
||
|
EXPECTED
|
||
|
);
|
||
|
}
|
||
|
|
||
|
#[test]
|
||
|
fn alternate_marker() {
|
||
|
let tmp = tmptree! {
|
||
|
"_darcs": {},
|
||
|
};
|
||
|
|
||
|
let output = Command::new(executable_path("just"))
|
||
|
.current_dir(tmp.path())
|
||
|
.arg("--init")
|
||
|
.output()
|
||
|
.unwrap();
|
||
|
|
||
|
assert!(output.status.success());
|
||
|
|
||
|
assert_eq!(
|
||
|
fs::read_to_string(tmp.path().join("justfile")).unwrap(),
|
||
|
EXPECTED
|
||
|
);
|
||
|
}
|
||
|
|
||
|
#[test]
|
||
|
fn search_directory() {
|
||
|
let tmp = tmptree! {
|
||
|
sub: {
|
||
|
".git": {},
|
||
|
},
|
||
|
};
|
||
|
|
||
|
let output = Command::new(executable_path("just"))
|
||
|
.current_dir(tmp.path())
|
||
|
.arg("--init")
|
||
|
.arg("sub/")
|
||
|
.output()
|
||
|
.unwrap();
|
||
|
|
||
|
assert!(output.status.success());
|
||
|
|
||
|
assert_eq!(
|
||
|
fs::read_to_string(tmp.path().join("sub/justfile")).unwrap(),
|
||
|
EXPECTED
|
||
|
);
|
||
|
}
|
||
|
|
||
|
#[test]
|
||
|
fn justfile() {
|
||
|
let tmp = tmptree! {
|
||
|
sub: {
|
||
|
".git": {},
|
||
|
},
|
||
|
};
|
||
|
|
||
|
let output = Command::new(executable_path("just"))
|
||
|
.current_dir(tmp.path().join("sub"))
|
||
|
.arg("--init")
|
||
|
.arg("--justfile")
|
||
|
.arg(tmp.path().join("justfile"))
|
||
|
.output()
|
||
|
.unwrap();
|
||
|
|
||
|
assert!(output.status.success());
|
||
|
|
||
|
assert_eq!(
|
||
|
fs::read_to_string(tmp.path().join("justfile")).unwrap(),
|
||
|
EXPECTED
|
||
|
);
|
||
|
}
|
||
|
|
||
|
#[test]
|
||
|
fn justfile_and_working_directory() {
|
||
|
let tmp = tmptree! {
|
||
|
sub: {
|
||
|
".git": {},
|
||
|
},
|
||
|
};
|
||
|
|
||
|
let output = Command::new(executable_path("just"))
|
||
|
.current_dir(tmp.path().join("sub"))
|
||
|
.arg("--init")
|
||
|
.arg("--justfile")
|
||
|
.arg(tmp.path().join("justfile"))
|
||
|
.arg("--working-directory")
|
||
|
.arg("/")
|
||
|
.output()
|
||
|
.unwrap();
|
||
|
|
||
|
assert!(output.status.success());
|
||
|
|
||
|
assert_eq!(
|
||
|
fs::read_to_string(tmp.path().join("justfile")).unwrap(),
|
||
|
EXPECTED
|
||
|
);
|
||
|
}
|