summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cli/tools/coverage/mod.rs6
-rw-r--r--tests/specs/coverage/filter_doc_testing_urls/__test__.jsonc15
-rw-r--r--tests/specs/coverage/filter_doc_testing_urls/coverage_success.out7
-rw-r--r--tests/specs/coverage/filter_doc_testing_urls/source.ts9
-rw-r--r--tests/specs/coverage/filter_doc_testing_urls/test.ts7
-rw-r--r--tests/specs/coverage/filter_doc_testing_urls/test_coverage.out9
6 files changed, 53 insertions, 0 deletions
diff --git a/cli/tools/coverage/mod.rs b/cli/tools/coverage/mod.rs
index f88b3bc64..260c0c842 100644
--- a/cli/tools/coverage/mod.rs
+++ b/cli/tools/coverage/mod.rs
@@ -452,6 +452,11 @@ fn filter_coverages(
let exclude: Vec<Regex> =
exclude.iter().map(|e| Regex::new(e).unwrap()).collect();
+ // Matches virtual file paths for doc testing
+ // e.g. file:///path/to/mod.ts$23-29.ts
+ let doc_test_re =
+ Regex::new(r"\$\d+-\d+\.(js|mjs|cjs|jsx|ts|mts|cts|tsx)$").unwrap();
+
coverages
.into_iter()
.filter(|e| {
@@ -460,6 +465,7 @@ fn filter_coverages(
|| e.url.ends_with("$deno$test.js")
|| e.url.ends_with(".snap")
|| is_supported_test_path(Path::new(e.url.as_str()))
+ || doc_test_re.is_match(e.url.as_str())
|| Url::parse(&e.url)
.ok()
.map(|url| npm_resolver.in_npm_package(&url))
diff --git a/tests/specs/coverage/filter_doc_testing_urls/__test__.jsonc b/tests/specs/coverage/filter_doc_testing_urls/__test__.jsonc
new file mode 100644
index 000000000..9bd4dd829
--- /dev/null
+++ b/tests/specs/coverage/filter_doc_testing_urls/__test__.jsonc
@@ -0,0 +1,15 @@
+{
+ "tempDir": true,
+ "steps": [
+ {
+ "args": "test -A --coverage --doc",
+ "output": "test_coverage.out",
+ "exitCode": 0
+ },
+ {
+ "args": "coverage",
+ "output": "coverage_success.out",
+ "exitCode": 0
+ }
+ ]
+}
diff --git a/tests/specs/coverage/filter_doc_testing_urls/coverage_success.out b/tests/specs/coverage/filter_doc_testing_urls/coverage_success.out
new file mode 100644
index 000000000..eb55868b0
--- /dev/null
+++ b/tests/specs/coverage/filter_doc_testing_urls/coverage_success.out
@@ -0,0 +1,7 @@
+--------------------------------
+File | Branch % | Line % |
+--------------------------------
+ source.ts | 100.0 | 100.0 |
+--------------------------------
+ All files | 100.0 | 100.0 |
+--------------------------------
diff --git a/tests/specs/coverage/filter_doc_testing_urls/source.ts b/tests/specs/coverage/filter_doc_testing_urls/source.ts
new file mode 100644
index 000000000..efe56c818
--- /dev/null
+++ b/tests/specs/coverage/filter_doc_testing_urls/source.ts
@@ -0,0 +1,9 @@
+/**
+ * @example Usage
+ * ```ts
+ * add(1, 2); // 3
+ * ```
+ */
+export function add(a: number, b: number): number {
+ return a + b;
+}
diff --git a/tests/specs/coverage/filter_doc_testing_urls/test.ts b/tests/specs/coverage/filter_doc_testing_urls/test.ts
new file mode 100644
index 000000000..46be64c63
--- /dev/null
+++ b/tests/specs/coverage/filter_doc_testing_urls/test.ts
@@ -0,0 +1,7 @@
+import { add } from "./source.ts";
+
+Deno.test("add()", () => {
+ if (add(1, 2) !== 3) {
+ throw new Error("test failed");
+ }
+});
diff --git a/tests/specs/coverage/filter_doc_testing_urls/test_coverage.out b/tests/specs/coverage/filter_doc_testing_urls/test_coverage.out
new file mode 100644
index 000000000..65548061a
--- /dev/null
+++ b/tests/specs/coverage/filter_doc_testing_urls/test_coverage.out
@@ -0,0 +1,9 @@
+Check [WILDCARD]/test.ts
+Check [WILDCARD]/source.ts$[WILDCARD].ts
+running 1 test from ./test.ts
+add() ... ok ([WILDCARD])
+running 1 test from ./source.ts$[WILDCARD].ts
+file:///[WILDCARD]/source.ts$[WILDCARD].ts ... ok ([WILDCARD])
+
+ok | 2 passed | 0 failed ([WILDCARD])
+