mirror of
https://github.com/denoland/deno.git
synced 2024-11-21 15:04:11 -05:00
feat: add __tests__
to test file detection defaults (#24443)
The `jest` test runner popularized putting tests into a `__tests__` folder. Whilst many have switched to going with a `.test` suffix in the file name these days, there are still many jest projects that have `__tests__`. By adding this to the default test detection logic it makes `deno test` discover those out of the box.
This commit is contained in:
parent
74ac29bae6
commit
1e97f0f148
2 changed files with 21 additions and 2 deletions
|
@ -2591,7 +2591,7 @@ report results to standard output:
|
|||
deno test src/fetch_test.ts src/signal_test.ts
|
||||
|
||||
Directory arguments are expanded to all contained files matching the glob
|
||||
{*_,*.,}test.{js,mjs,ts,mts,jsx,tsx}:
|
||||
{*_,*.,}test.{js,mjs,ts,mts,jsx,tsx} or **/__tests__/**:
|
||||
|
||||
deno test src/",
|
||||
)
|
||||
|
|
|
@ -1611,9 +1611,16 @@ pub(crate) fn is_supported_test_path(path: &Path) -> bool {
|
|||
fn has_supported_test_path_name(path: &Path) -> bool {
|
||||
if let Some(name) = path.file_stem() {
|
||||
let basename = name.to_string_lossy();
|
||||
basename.ends_with("_test")
|
||||
if basename.ends_with("_test")
|
||||
|| basename.ends_with(".test")
|
||||
|| basename == "test"
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
path
|
||||
.components()
|
||||
.any(|seg| seg.as_os_str().to_str() == Some("__tests__"))
|
||||
} else {
|
||||
false
|
||||
}
|
||||
|
@ -2077,6 +2084,18 @@ mod inner_test {
|
|||
assert!(is_supported_test_path(Path::new("foo/bar/test.jsx")));
|
||||
assert!(is_supported_test_path(Path::new("foo/bar/test.ts")));
|
||||
assert!(is_supported_test_path(Path::new("foo/bar/test.tsx")));
|
||||
assert!(is_supported_test_path(Path::new(
|
||||
"foo/bar/__tests__/foo.js"
|
||||
)));
|
||||
assert!(is_supported_test_path(Path::new(
|
||||
"foo/bar/__tests__/foo.jsx"
|
||||
)));
|
||||
assert!(is_supported_test_path(Path::new(
|
||||
"foo/bar/__tests__/foo.ts"
|
||||
)));
|
||||
assert!(is_supported_test_path(Path::new(
|
||||
"foo/bar/__tests__/foo.tsx"
|
||||
)));
|
||||
assert!(!is_supported_test_path(Path::new("README.md")));
|
||||
assert!(!is_supported_test_path(Path::new("lib/typescript.d.ts")));
|
||||
assert!(!is_supported_test_path(Path::new("notatest.js")));
|
||||
|
|
Loading…
Reference in a new issue