summaryrefslogtreecommitdiff
path: root/cli
diff options
context:
space:
mode:
Diffstat (limited to 'cli')
-rw-r--r--cli/js/40_testing.js21
-rw-r--r--cli/tests/testdata/test/pass.out34
-rw-r--r--cli/tests/testdata/test/pass.ts23
3 files changed, 75 insertions, 3 deletions
diff --git a/cli/js/40_testing.js b/cli/js/40_testing.js
index c073b1c18..21417db23 100644
--- a/cli/js/40_testing.js
+++ b/cli/js/40_testing.js
@@ -27,6 +27,7 @@ const {
Promise,
SafeArrayIterator,
Set,
+ StringPrototypeReplaceAll,
SymbolToStringTag,
TypeError,
} = primordials;
@@ -516,6 +517,21 @@ function withPermissions(fn, permissions) {
};
}
+const ESCAPE_ASCII_CHARS = [
+ ["\b", "\\b"],
+ ["\f", "\\f"],
+ ["\t", "\\t"],
+ ["\n", "\\n"],
+ ["\r", "\\r"],
+ ["\v", "\\v"],
+];
+
+function escapeName(name) {
+ for (const [escape, replaceWith] of ESCAPE_ASCII_CHARS) {
+ name = StringPrototypeReplaceAll(name, escape, replaceWith);
+ }
+ return name;
+}
/**
* @typedef {{
* id: number,
@@ -693,6 +709,7 @@ function test(
}
testDesc.location = location;
testDesc.fn = wrapTest(testDesc);
+ testDesc.name = escapeName(testDesc.name);
const { id, origin } = ops.op_register_test(testDesc);
testDesc.id = id;
@@ -818,6 +835,7 @@ function bench(
benchDesc.async = AsyncFunction === benchDesc.fn.constructor;
benchDesc.fn = wrapBenchmark(benchDesc);
benchDesc.warmup = false;
+ benchDesc.name = escapeName(benchDesc.name);
const { id, origin } = ops.op_register_bench(benchDesc);
benchDesc.id = id;
@@ -1190,7 +1208,8 @@ function createTestContext(desc) {
stepDesc.level = level + 1;
stepDesc.parent = desc;
stepDesc.rootId = rootId;
- stepDesc.rootName = rootName;
+ stepDesc.name = escapeName(stepDesc.name);
+ stepDesc.rootName = escapeName(rootName);
stepDesc.fn = wrapTest(stepDesc);
const { id, origin } = ops.op_register_test_step(stepDesc);
stepDesc.id = id;
diff --git a/cli/tests/testdata/test/pass.out b/cli/tests/testdata/test/pass.out
index f9c4f1ba4..08b9f5a52 100644
--- a/cli/tests/testdata/test/pass.out
+++ b/cli/tests/testdata/test/pass.out
@@ -1,5 +1,5 @@
Check [WILDCARD]/test/pass.ts
-running 10 tests from ./test/pass.ts
+running 16 tests from ./test/pass.ts
test 0 ... ok ([WILDCARD])
test 1 ... ok ([WILDCARD])
test 2 ... ok ([WILDCARD])
@@ -18,6 +18,36 @@ test 9 ...
console.error
----- output end -----
test 9 ... ok ([WILDCARD])
+test\b ...
+------- output -------
+console.error
+----- output end -----
+test\b ... ok ([WILDCARD])
+test\f ...
+------- output -------
+console.error
+----- output end -----
+test\f ... ok ([WILDCARD])
+test\t ...
+------- output -------
+console.error
+----- output end -----
+test\t ... ok ([WILDCARD])
+test\n ...
+------- output -------
+console.error
+----- output end -----
+test\n ... ok ([WILDCARD])
+test\r ...
+------- output -------
+console.error
+----- output end -----
+test\r ... ok ([WILDCARD])
+test\v ...
+------- output -------
+console.error
+----- output end -----
+test\v ... ok ([WILDCARD])
-ok | 10 passed | 0 failed ([WILDCARD])
+ok | 16 passed | 0 failed ([WILDCARD])
diff --git a/cli/tests/testdata/test/pass.ts b/cli/tests/testdata/test/pass.ts
index f72123584..c4c0f45dc 100644
--- a/cli/tests/testdata/test/pass.ts
+++ b/cli/tests/testdata/test/pass.ts
@@ -12,3 +12,26 @@ Deno.test("test 8", () => {
Deno.test("test 9", () => {
console.error("console.error");
});
+
+Deno.test("test\b", () => {
+ console.error("console.error");
+});
+Deno.test("test\f", () => {
+ console.error("console.error");
+});
+
+Deno.test("test\t", () => {
+ console.error("console.error");
+});
+
+Deno.test("test\n", () => {
+ console.error("console.error");
+});
+
+Deno.test("test\r", () => {
+ console.error("console.error");
+});
+
+Deno.test("test\v", () => {
+ console.error("console.error");
+});