diff --git a/cli/tools/check.rs b/cli/tools/check.rs index 87ec88a4aec792..c154ada7afbbd6 100644 --- a/cli/tools/check.rs +++ b/cli/tools/check.rs @@ -27,6 +27,7 @@ use crate::graph_util::ModuleGraphBuilder; use crate::npm::CliNpmResolver; use crate::tsc; use crate::tsc::Diagnostics; +use crate::util::path::to_percent_decoded_str; use crate::version; /// Options for performing a check of a module graph. Note that the decision to @@ -154,7 +155,11 @@ impl TypeChecker { for root in &graph.roots { let root_str = root.as_str(); - log::info!("{} {}", colors::green("Check"), root_str); + log::info!( + "{} {}", + colors::green("Check"), + to_percent_decoded_str(root_str) + ); } let check_js = ts_config.get_check_js(); diff --git a/cli/tools/test/fmt.rs b/cli/tools/test/fmt.rs index 77cc3d1ad9ab61..d66c7223972ce4 100644 --- a/cli/tools/test/fmt.rs +++ b/cli/tools/test/fmt.rs @@ -8,6 +8,8 @@ use phf::phf_map; use std::borrow::Cow; use std::ops::AddAssign; +use crate::util::path::to_percent_decoded_str; + use super::*; pub fn to_relative_path_or_remote_url(cwd: &Url, path_or_url: &str) -> String { @@ -19,7 +21,7 @@ pub fn to_relative_path_or_remote_url(cwd: &Url, path_or_url: &str) -> String { if !r.starts_with("../") { r = format!("./{r}"); } - return r; + return to_percent_decoded_str(&r); } } path_or_url.to_string() diff --git a/tests/integration/test_tests.rs b/tests/integration/test_tests.rs index fe9eb83c54169c..2f5a620e1f0d6e 100644 --- a/tests/integration/test_tests.rs +++ b/tests/integration/test_tests.rs @@ -63,6 +63,49 @@ itest!(fail { output: "test/fail.out", }); +// GHA CI seems to have a problem with Emoji +// https://github.com/denoland/deno/pull/23200#issuecomment-2134032695 +#[test] +fn fail_with_contain_unicode_filename() { + let context = TestContextBuilder::new().use_temp_cwd().build(); + let temp_dir = context.temp_dir(); + temp_dir.write( + "fail_with_contain_unicode_filename🦕.ts", + "Deno.test(\"test 0\", () => { + throw new Error(); +}); + ", + ); + let output = context + .new_command() + .args("test fail_with_contain_unicode_filename🦕.ts") + .run(); + output.skip_output_check(); + output.assert_exit_code(1); + output.assert_matches_text( + "Check [WILDCARD]/fail_with_contain_unicode_filename🦕.ts +running 1 test from ./fail_with_contain_unicode_filename🦕.ts +test 0 ... FAILED ([WILDCARD]) + + ERRORS + +test 0 => ./fail_with_contain_unicode_filename🦕.ts:[WILDCARD] +error: Error + throw new Error(); + ^ + at [WILDCARD]/fail_with_contain_unicode_filename%F0%9F%A6%95.ts:[WILDCARD] + + FAILURES + +test 0 => ./fail_with_contain_unicode_filename🦕.ts:[WILDCARD] + +FAILED | 0 passed | 1 failed ([WILDCARD]) + +error: Test failed +", + ); +} + itest!(collect { args: "test --ignore=test/collect/ignore test/collect", exit_code: 0,