diff --git a/cli/tests/integration/coverage_tests.rs b/cli/tests/integration/coverage_tests.rs index 3317020fb3..d3affd4dea 100644 --- a/cli/tests/integration/coverage_tests.rs +++ b/cli/tests/integration/coverage_tests.rs @@ -553,6 +553,8 @@ fn test_html_reporter() { let bar_ts_html = fs::read_to_string(tempdir.join("html").join("bar.ts.html")).unwrap(); assert!(bar_ts_html.contains("

Coverage report for bar.ts

")); + // Check in source code is escaped to <T> + assert!(bar_ts_html.contains("<T>")); let baz_index_html = fs::read_to_string(tempdir.join("html").join("baz").join("index.html")) diff --git a/cli/tests/testdata/coverage/multisource/bar.ts b/cli/tests/testdata/coverage/multisource/bar.ts index 1bb10a0a62..123937b0b6 100644 --- a/cli/tests/testdata/coverage/multisource/bar.ts +++ b/cli/tests/testdata/coverage/multisource/bar.ts @@ -1,4 +1,4 @@ -export function bar(cond: boolean) { +export function bar(cond: T) { if (cond) { return 1; } else { diff --git a/cli/tools/coverage/reporter.rs b/cli/tools/coverage/reporter.rs index da8982b8d3..e94b542553 100644 --- a/cli/tools/coverage/reporter.rs +++ b/cli/tools/coverage/reporter.rs @@ -512,7 +512,7 @@ impl HtmlCoverageReporter { /// Creates of single file code coverage. pub fn create_html_code_table( &self, - file_text: &String, + file_text: &str, report: &CoverageReport, ) -> String { let line_num = file_text.lines().count(); @@ -548,6 +548,11 @@ impl HtmlCoverageReporter { .collect::>() .join("\n"); + let file_text = file_text + .replace('&', "&") + .replace('<', "<") + .replace('>', ">"); + // TODO(kt3k): Add syntax highlight to source code format!( "