Add folder/file ignore and filter tests to globset (#299)

This commit is contained in:
Félix Saparelli 2022-06-07 11:25:50 +00:00
parent ec26a99b7d
commit e215e2c09f
1 changed files with 57 additions and 0 deletions

View File

@ -34,6 +34,34 @@ async fn exact_filename() {
filterer.dir_does_pass("/test/Cargo.toml");
}
#[tokio::test]
async fn exact_filename_in_folder() {
let filterer = filt(&["sub/Cargo.toml"], &[], &[]).await;
filterer.file_doesnt_pass("Cargo.toml");
filterer.file_does_pass("sub/Cargo.toml");
filterer.file_doesnt_pass("/test/foo/bar/Cargo.toml");
filterer.file_doesnt_pass("Cargo.json");
filterer.file_doesnt_pass("Gemfile.toml");
filterer.file_doesnt_pass("FINAL-FINAL.docx");
filterer.dir_doesnt_pass("/a/folder");
filterer.dir_does_pass("/test/sub/Cargo.toml");
}
#[tokio::test]
async fn exact_filename_in_hidden_folder() {
let filterer = filt(&[".sub/Cargo.toml"], &[], &[]).await;
filterer.file_doesnt_pass("Cargo.toml");
filterer.file_does_pass(".sub/Cargo.toml");
filterer.file_doesnt_pass("/test/foo/bar/Cargo.toml");
filterer.file_doesnt_pass("Cargo.json");
filterer.file_doesnt_pass("Gemfile.toml");
filterer.file_doesnt_pass("FINAL-FINAL.docx");
filterer.dir_doesnt_pass("/a/folder");
filterer.dir_does_pass("/test/.sub/Cargo.toml");
}
#[tokio::test]
async fn exact_filenames_multiple() {
let filterer = filt(&["Cargo.toml", "package.json"], &[], &[]).await;
@ -163,6 +191,35 @@ async fn ignore_exact_filename() {
filterer.dir_doesnt_pass("/test/Cargo.toml");
}
#[tokio::test]
async fn ignore_exact_filename_in_folder() {
let filterer = filt(&[], &["sub/Cargo.toml"], &[]).await;
filterer.file_does_pass("Cargo.toml");
filterer.file_doesnt_pass("sub/Cargo.toml");
filterer.file_does_pass("/test/foo/bar/Cargo.toml");
filterer.file_does_pass("Cargo.json");
filterer.file_does_pass("Gemfile.toml");
filterer.file_does_pass("FINAL-FINAL.docx");
filterer.dir_does_pass("/a/folder");
filterer.dir_doesnt_pass("/test/sub/Cargo.toml");
}
#[tokio::test]
async fn ignore_exact_filename_in_hidden_folder() {
let filterer = filt(&[], &[".sub/Cargo.toml"], &[]).await;
filterer.file_does_pass("Cargo.toml");
filterer.file_doesnt_pass(".sub/Cargo.toml");
filterer.file_does_pass("/test/foo/bar/Cargo.toml");
filterer.file_does_pass("Cargo.json");
filterer.file_does_pass("Gemfile.toml");
filterer.file_does_pass("FINAL-FINAL.docx");
filterer.dir_does_pass("/a/folder");
filterer.dir_doesnt_pass("/test/.sub/Cargo.toml");
}
#[tokio::test]
async fn ignore_exact_filenames_multiple() {
let filterer = filt(&[], &["Cargo.toml", "package.json"], &[]).await;