mirror of
https://github.com/denoland/deno.git
synced 2025-09-30 22:21:15 +00:00
feat(test): Add support for regex in filter flag (#6343)
Currently, the documentation makes it sound like the test subcommand's filter flag could accept some kind of pattern matching value like a glob or a regex, although the function "createFilterFn" accepts a regex as an argument, there's no way to pass an actual regex value from the CLI. This commit makes it possible to pass a string that could be cast as regex when string matches "^/.*/$". With this change, a user can use the filter flag as follow: deno test --filter "/test-.+/" Also tested that `\` get escaped properly, on MacOS at least, and this is also a valid flag: deno test --filter "/test-\d+/"
This commit is contained in:
parent
14a44464a6
commit
4534db656d
5 changed files with 84 additions and 3 deletions
|
@ -308,6 +308,9 @@ function createFilterFn(
|
|||
if (filter) {
|
||||
if (filter instanceof RegExp) {
|
||||
passes = passes && filter.test(def.name);
|
||||
} else if (filter.startsWith("/") && filter.endsWith("/")) {
|
||||
const filterAsRegex = new RegExp(filter.slice(1, filter.length - 1));
|
||||
passes = passes && filterAsRegex.test(def.name);
|
||||
} else {
|
||||
passes = passes && def.name.includes(filter);
|
||||
}
|
||||
|
@ -325,6 +328,8 @@ function createFilterFn(
|
|||
};
|
||||
}
|
||||
|
||||
exposeForTest("createFilterFn", createFilterFn);
|
||||
|
||||
interface RunTestsOptions {
|
||||
exitOnFail?: boolean;
|
||||
failFast?: boolean;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue