summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHajime-san <41257923+Hajime-san@users.noreply.github.com>2024-05-28 22:34:57 +0900
committerGitHub <noreply@github.com>2024-05-28 13:34:57 +0000
commit9aa593cd5d4024890e36af7842f1eb4b4c3bd544 (patch)
tree9852e27158ed856700f28095b1f763752001bc0e
parentdc5c799c398ef1c396ff765726b93b65a4f2996b (diff)
fix(cli/test): decoding percent-encoding(non-ASCII) file path correctly (#23200)
# Summary This PR resolves about the issue. fixes #10810 And the formerly context is in the PR. #22582 Here is an expected behaviour example with this change. - 🦕.test.ts ```ts import { assertEquals } from "https://deno.land/std@0.215.0/assert/mod.ts"; Deno.test("example test", () => { assertEquals("🍋", "🦕"); }); ```
-rw-r--r--cli/tools/check.rs7
-rw-r--r--cli/tools/test/fmt.rs4
-rw-r--r--tests/integration/test_tests.rs43
3 files changed, 52 insertions, 2 deletions
diff --git a/cli/tools/check.rs b/cli/tools/check.rs
index 87ec88a4a..c154ada7a 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 77cc3d1ad..d66c72239 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 fe9eb83c5..2f5a620e1 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,