fix(coverage): exclude .snap files (#14480)

This commit is contained in:
Geert-Jan Zwiers 2022-05-04 13:10:55 +02:00 committed by GitHub
parent e3954df8c5
commit 253fbf9d2a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 79 additions and 1 deletions

View file

@ -19,6 +19,11 @@ fn final_blankline() {
run_coverage_text("final_blankline", "js");
}
#[test]
fn no_snaps() {
no_snaps_included("no_snaps_included", "ts");
}
fn run_coverage_text(test_name: &str, extension: &str) {
let deno_dir = TempDir::new();
let tempdir = TempDir::new();
@ -177,3 +182,57 @@ fn multifile_coverage() {
assert!(output.status.success());
}
fn no_snaps_included(test_name: &str, extension: &str) {
let deno_dir = TempDir::new();
let tempdir = TempDir::new();
let tempdir = tempdir.path().join("cov");
let status = util::deno_cmd_with_deno_dir(&deno_dir)
.current_dir(util::testdata_path())
.arg("test")
.arg("--quiet")
.arg("--unstable")
.arg("--allow-read")
.arg(format!("--coverage={}", tempdir.to_str().unwrap()))
.arg(format!(
"coverage/no_snaps_included/{}_test.{}",
test_name, extension
))
.stdout(std::process::Stdio::piped())
.stderr(std::process::Stdio::piped())
.status()
.unwrap();
assert!(status.success());
let output = util::deno_cmd_with_deno_dir(&deno_dir)
.current_dir(util::testdata_path())
.arg("coverage")
.arg("--unstable")
.arg(format!("{}/", tempdir.to_str().unwrap()))
.stdout(std::process::Stdio::piped())
.stderr(std::process::Stdio::piped())
.output()
.unwrap();
// Verify there's no "Check" being printed
assert!(output.stderr.is_empty());
let actual =
util::strip_ansi_codes(std::str::from_utf8(&output.stdout).unwrap())
.to_string();
let expected = fs::read_to_string(
util::testdata_path().join("coverage/no_snaps_included/expected.out"),
)
.unwrap();
if !util::wildcard_match(&expected, &actual) {
println!("OUTPUT\n{}\nOUTPUT", actual);
println!("EXPECTED\n{}\nEXPECTED", expected);
panic!("pattern match failed");
}
assert!(output.status.success());
}

View file

@ -0,0 +1,3 @@
export const snapshot = {};
snapshot[`snapshot excluded from coverage 1`] = `{}`;

View file

@ -0,0 +1 @@
cover [WILDCARD]/no_snaps_included/no_snaps_included.ts ... 100.000% (3/3)

View file

@ -0,0 +1,3 @@
export function truth() {
return true;
}

View file

@ -0,0 +1,11 @@
import { assertSnapshot } from "https://deno.land/std@0.136.0/testing/snapshot.ts";
import { truth } from "./no_snaps_included.ts";
Deno.test("the truth", () => {
truth();
});
// Create snapshot in .snap file, but it shouldn't be in the coverage output
Deno.test("snapshot excluded from coverage", async (context) => {
await assertSnapshot(context, {});
});

View file

@ -583,7 +583,8 @@ fn filter_coverages(
.filter(|e| {
let is_internal = e.url.starts_with("deno:")
|| e.url.ends_with("__anonymous__")
|| e.url.ends_with("$deno$test.js");
|| e.url.ends_with("$deno$test.js")
|| e.url.ends_with(".snap");
let is_included = include.iter().any(|p| p.is_match(&e.url));
let is_excluded = exclude.iter().any(|p| p.is_match(&e.url));