Skip to content

Commit cd809f4

Browse files
authored
fix: normalize path when joining on base (#37)
For denoland/deno#22239
1 parent 1808e5b commit cd809f4

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

src/glob.rs

+15-1
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ impl PathOrPattern {
292292
{
293293
PathOrPattern::new(p)
294294
} else {
295-
Ok(PathOrPattern::Path(base.join(p)))
295+
Ok(PathOrPattern::Path(normalize_path(base.join(p))))
296296
}
297297
}
298298

@@ -581,6 +581,20 @@ mod test {
581581
let err = PathOrPattern::from_relative(&cwd, "file:///raw.githubusercontent.com%2Fdyedgreen%2Fdeno-sqlite%2Frework_api%2Fmod.ts").unwrap_err();
582582
assert_eq!(format!("{:#}", err), "Invalid file URL 'file:///raw.githubusercontent.com%2Fdyedgreen%2Fdeno-sqlite%2Frework_api%2Fmod.ts'");
583583
}
584+
// sibling dir
585+
{
586+
let pattern = PathOrPattern::from_relative(&cwd, "../sibling").unwrap();
587+
let parent_dir = cwd.parent().unwrap();
588+
assert_eq!(pattern.base_path().unwrap(), parent_dir.join("sibling"));
589+
assert_eq!(
590+
pattern.matches_path(&parent_dir.join("sibling/foo.ts")),
591+
true
592+
);
593+
assert_eq!(
594+
pattern.matches_path(&parent_dir.join("./other/foo.js")),
595+
false
596+
);
597+
}
584598
}
585599

586600
#[test]

0 commit comments

Comments
 (0)