From 206c593519681a024409d9dd23ef55b1d13d938f Mon Sep 17 00:00:00 2001 From: Geert-Jan Zwiers Date: Thu, 30 Mar 2023 19:40:22 +0200 Subject: fix(coverage): ignore files from npm registry (#18457) Fixes https://github.com/denoland/deno/issues/17664 and part of https://github.com/denoland/deno/issues/18454 by excluding files belonging to npm modules by default in the coverage output. --- cli/tools/coverage/mod.rs | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'cli/tools/coverage/mod.rs') diff --git a/cli/tools/coverage/mod.rs b/cli/tools/coverage/mod.rs index 9fead6e37..2346b3614 100644 --- a/cli/tools/coverage/mod.rs +++ b/cli/tools/coverage/mod.rs @@ -588,6 +588,7 @@ fn filter_coverages( coverages: Vec, include: Vec, exclude: Vec, + npm_root_dir: &str, ) -> Vec { let include: Vec = include.iter().map(|e| Regex::new(e).unwrap()).collect(); @@ -599,6 +600,7 @@ fn filter_coverages( .into_iter() .filter(|e| { let is_internal = e.url.starts_with("ext:") + || e.url.starts_with(npm_root_dir) || e.url.ends_with("__anonymous__") || e.url.ends_with("$deno$test.js") || e.url.ends_with(".snap"); @@ -620,12 +622,14 @@ pub async fn cover_files( } let ps = ProcState::build(flags).await?; + let root_dir_url = ps.npm_resolver.root_dir_url(); let script_coverages = collect_coverages(coverage_flags.files)?; let script_coverages = filter_coverages( script_coverages, coverage_flags.include, coverage_flags.exclude, + root_dir_url.as_str(), ); let proc_coverages: Vec<_> = script_coverages -- cgit v1.2.3