summaryrefslogtreecommitdiff
path: root/cli/tests
diff options
context:
space:
mode:
authorNayeem Rahman <nayeemrmn99@gmail.com>2021-10-18 17:05:36 +0100
committerGitHub <noreply@github.com>2021-10-18 18:05:36 +0200
commit5a48d41bddf599b14dd9019ff49821c436ce4542 (patch)
tree00fa6bd6d23bb3ec7548e2dbc7cdfdf41f2b2e74 /cli/tests
parent0a7ba33ed13450af031503a1060389037c509ea3 (diff)
fix(cli/fmt_errors): don't panic on source line formatting errors (#12449)
Returns empty values in case of errors, source lines are non-essential anyway. These errors can happen e.g. when source files change at runtime. A warning is also printed to help us track when it happens in unexpected cases besides this.
Diffstat (limited to 'cli/tests')
-rw-r--r--cli/tests/integration/run_tests.rs6
-rw-r--r--cli/tests/testdata/eval_context_conflicting_source.ts1
-rw-r--r--cli/tests/testdata/eval_context_throw_with_conflicting_source.ts6
-rw-r--r--cli/tests/testdata/eval_context_throw_with_conflicting_source.ts.out4
4 files changed, 17 insertions, 0 deletions
diff --git a/cli/tests/integration/run_tests.rs b/cli/tests/integration/run_tests.rs
index f469bb364..0aca09902 100644
--- a/cli/tests/integration/run_tests.rs
+++ b/cli/tests/integration/run_tests.rs
@@ -1916,3 +1916,9 @@ itest!(long_data_url_formatting {
output: "long_data_url_formatting.ts.out",
exit_code: 1,
});
+
+itest!(eval_context_throw_with_conflicting_source {
+ args: "run eval_context_throw_with_conflicting_source.ts",
+ output: "eval_context_throw_with_conflicting_source.ts.out",
+ exit_code: 1,
+});
diff --git a/cli/tests/testdata/eval_context_conflicting_source.ts b/cli/tests/testdata/eval_context_conflicting_source.ts
new file mode 100644
index 000000000..671740113
--- /dev/null
+++ b/cli/tests/testdata/eval_context_conflicting_source.ts
@@ -0,0 +1 @@
+throw new Error("foo");
diff --git a/cli/tests/testdata/eval_context_throw_with_conflicting_source.ts b/cli/tests/testdata/eval_context_throw_with_conflicting_source.ts
new file mode 100644
index 000000000..c5bc21e48
--- /dev/null
+++ b/cli/tests/testdata/eval_context_throw_with_conflicting_source.ts
@@ -0,0 +1,6 @@
+// deno-lint-ignore no-explicit-any
+const [, errorInfo] = (Deno as any).core.evalContext(
+ '/* aaaaaaaaaaaaaaaaa */ throw new Error("foo")',
+ new URL("eval_context_conflicting_source.ts", import.meta.url).href,
+);
+throw errorInfo.thrown;
diff --git a/cli/tests/testdata/eval_context_throw_with_conflicting_source.ts.out b/cli/tests/testdata/eval_context_throw_with_conflicting_source.ts.out
new file mode 100644
index 000000000..37219ba86
--- /dev/null
+++ b/cli/tests/testdata/eval_context_throw_with_conflicting_source.ts.out
@@ -0,0 +1,4 @@
+[WILDCARD]error: Uncaught Error: foo
+Warning Couldn't format source line: Column 31 is out of bounds (source may have changed at runtime)
+ at file:///[WILDCARD]/eval_context_conflicting_source.ts:1:31
+ at file:///[WILDCARD]/eval_context_throw_with_conflicting_source.ts:[WILDCARD]