1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-21 15:04:11 -05:00

fix(coverage): skip generating coverage json for http(s) scripts (#24008)

closes #21784
This commit is contained in:
Yoshiya Hinosawa 2024-05-28 20:25:46 +09:00 committed by GitHub
parent 1f913f2eb6
commit e9cc8a2b53
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 41 additions and 1 deletions

View file

@ -68,9 +68,11 @@ impl crate::worker::CoverageCollector for CoverageCollector {
let script_coverages = self.take_precise_coverage().await?.result;
for script_coverage in script_coverages {
// Filter out internal JS files from being included in coverage reports
// Filter out internal and http/https JS files from being included in coverage reports
if script_coverage.url.starts_with("ext:")
|| script_coverage.url.starts_with("[ext:")
|| script_coverage.url.starts_with("http:")
|| script_coverage.url.starts_with("https:")
|| script_coverage.url.starts_with("node:")
{
continue;

View file

@ -439,6 +439,39 @@ fn no_internal_node_code() {
}
}
#[test]
fn no_http_coverage_data() {
let _http_server_guard = test_util::http_server();
let context = TestContext::default();
let tempdir = context.temp_dir();
let tempdir = tempdir.path().join("cov");
let output = context
.new_command()
.args_vec(vec![
"test".to_string(),
"--quiet".to_string(),
"--no-check".to_string(),
format!("--coverage={}", tempdir),
"coverage/no_http_coverage_data_test.ts".to_string(),
])
.run();
output.assert_exit_code(0);
output.skip_output_check();
// Check that coverage files contain no http urls
let paths = tempdir.read_dir();
for path in paths {
let unwrapped = PathRef::new(path.unwrap().path());
let data = unwrapped.read_to_string();
let value: serde_json::Value = serde_json::from_str(&data).unwrap();
let url = value["url"].as_str().unwrap();
assert_starts_with!(url, "file:");
}
}
#[test]
fn test_html_reporter() {
// This test case generates a html coverage report of test cases in /tests/testdata/coverage/multisource

View file

@ -0,0 +1,5 @@
import "http://localhost:4546/run/001_hello.js";
Deno.test("hello", () => {
console.log("hello");
});