use std::path::Path;
pub fn is_test_document(path: &Path) -> bool {
path.file_name().is_some_and(|name| {
let name = name.to_string_lossy();
name.ends_with(".test.yaml") || name.ends_with(".test.yml")
})
}
pub fn is_job_document(path: &Path) -> bool {
path.file_name().is_some_and(|name| {
let name = name.to_string_lossy();
name.ends_with(".job.yaml") || name.ends_with(".job.yml")
})
}
pub fn is_reserved_document(path: &Path) -> bool {
is_test_document(path) || is_job_document(path)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_suffixes_match() {
assert!(is_test_document(Path::new("a.test.yaml")));
assert!(is_test_document(Path::new("a.test.yml")));
assert!(is_job_document(Path::new("a.job.yaml")));
assert!(is_job_document(Path::new("a.job.yml")));
assert!(is_reserved_document(Path::new("a.test.yaml")));
assert!(is_reserved_document(Path::new("a.test.yml")));
assert!(is_reserved_document(Path::new("a.job.yaml")));
assert!(is_reserved_document(Path::new("a.job.yml")));
}
#[test]
fn non_reserved_names_rejected() {
assert!(!is_test_document(Path::new("atest.yaml")));
assert!(!is_job_document(Path::new("ajob.yaml")));
assert!(!is_reserved_document(Path::new("atest.yaml")));
assert!(!is_reserved_document(Path::new("ajob.yaml")));
assert!(!is_test_document(Path::new("a.yaml")));
assert!(!is_job_document(Path::new("a.yaml")));
assert!(!is_reserved_document(Path::new("a.yaml")));
assert!(!is_test_document(Path::new("x.test.json")));
assert!(!is_job_document(Path::new("x.test.json")));
assert!(!is_reserved_document(Path::new("x.test.json")));
assert!(!is_test_document(Path::new("x.job.json")));
assert!(!is_job_document(Path::new("x.job.json")));
assert!(!is_reserved_document(Path::new("x.job.json")));
}
}