diff options
-rw-r--r-- | cli/rt/02_console.js | 26 | ||||
-rw-r--r-- | cli/tests/unit/console_test.ts | 13 | ||||
-rw-r--r-- | std/fmt/printf_test.ts | 10 | ||||
-rw-r--r-- | std/node/assertion_error_test.ts | 2 | ||||
-rw-r--r-- | std/testing/asserts.ts | 8 |
5 files changed, 36 insertions, 23 deletions
diff --git a/cli/rt/02_console.js b/cli/rt/02_console.js index 34e106ff2..f82262a7e 100644 --- a/cli/rt/02_console.js +++ b/cli/rt/02_console.js @@ -405,7 +405,7 @@ switch (typeof value) { case "string": - return value; + return green(quoteString(value)); case "number": // Numbers are yellow // Special handling of -0 return yellow(Object.is(value, -0) ? "-0" : `${value}`); @@ -1265,8 +1265,12 @@ if (a > 0) { string += " "; } - // Use default maximum depth for null or undefined arguments. - string += inspectValue(args[a], new Set(), 0, rInspectOptions); + if (typeof args[a] == "string") { + string += args[a]; + } else { + // Use default maximum depth for null or undefined arguments. + string += inspectValue(args[a], new Set(), 0, rInspectOptions); + } } if (rInspectOptions.indentLevel > 0) { @@ -1543,16 +1547,12 @@ value, inspectOptions = {}, ) { - if (typeof value === "string") { - return value; - } else { - return inspectValue(value, new Set(), 0, { - ...DEFAULT_INSPECT_OPTIONS, - ...inspectOptions, - // TODO(nayeemrmn): Indent level is not supported. - indentLevel: 0, - }); - } + return inspectValue(value, new Set(), 0, { + ...DEFAULT_INSPECT_OPTIONS, + ...inspectOptions, + // TODO(nayeemrmn): Indent level is not supported. + indentLevel: 0, + }); } // Expose these fields to internalObject for tests. diff --git a/cli/tests/unit/console_test.ts b/cli/tests/unit/console_test.ts index 8b5079a59..3df4b13e4 100644 --- a/cli/tests/unit/console_test.ts +++ b/cli/tests/unit/console_test.ts @@ -831,7 +831,7 @@ unitTest(function consoleTestWithStringFormatSpecifier(): void { unitTest(function consoleTestWithObjectFormatSpecifier(): void { assertEquals(stringify("%o"), "%o"); assertEquals(stringify("%o", 42), "42"); - assertEquals(stringify("%o", "foo"), "foo"); + assertEquals(stringify("%o", "foo"), `"foo"`); assertEquals(stringify("o: %o, a: %O", {}, []), "o: {}, a: []"); assertEquals(stringify("%o", { a: 42 }), "{ a: 42 }"); assertEquals( @@ -1424,6 +1424,17 @@ unitTest(function consoleTrace(): void { }); }); +unitTest(function inspectString(): void { + assertEquals( + stripColor(Deno.inspect("\0")), + `"\\x00"`, + ); + assertEquals( + stripColor(Deno.inspect("\x1b[2J")), + `"\\x1b[2J"`, + ); +}); + unitTest(function inspectSorted(): void { assertEquals( stripColor(Deno.inspect({ b: 2, a: 1 }, { sorted: true })), diff --git a/std/fmt/printf_test.ts b/std/fmt/printf_test.ts index 54adc8b55..81e172f81 100644 --- a/std/fmt/printf_test.ts +++ b/std/fmt/printf_test.ts @@ -655,8 +655,14 @@ Deno.test("testErrors", function (): void { assertEquals(S("%[1]*.2f", "a", "p"), "%!(BAD WIDTH 'a')"); - assertEquals(S("A", "a", "p"), "A%!(EXTRA 'a' 'p')"); - assertEquals(S("%[2]s %[2]s", "a", "p"), "p p%!(EXTRA 'a')"); + assertEquals( + S("A", "a", "p"), + `A%!(EXTRA '\x1b[32m"a"\x1b[39m' '\x1b[32m"p"\x1b[39m')`, + ); + assertEquals( + S("%[2]s %[2]s", "a", "p"), + `p p%!(EXTRA '\x1b[32m"a"\x1b[39m')`, + ); // remains to be determined how to handle bad indices ... // (realistically) the entire error handling is still up for grabs. diff --git a/std/node/assertion_error_test.ts b/std/node/assertion_error_test.ts index b0457fe5f..5157ea3b3 100644 --- a/std/node/assertion_error_test.ts +++ b/std/node/assertion_error_test.ts @@ -108,7 +108,7 @@ Deno.test({ stackStartFn, }); assertStrictEquals(err.name, "AssertionError"); - assertStrictEquals(stripColor(err.message), "deno match /node/"); + assertStrictEquals(stripColor(err.message), `"deno" match /node/`); assertStrictEquals(err.generatedMessage, true); assertStrictEquals(err.code, "ERR_ASSERTION"); assertStrictEquals(err.actual, "deno"); diff --git a/std/testing/asserts.ts b/std/testing/asserts.ts index a3f0c1338..9796c9d31 100644 --- a/std/testing/asserts.ts +++ b/std/testing/asserts.ts @@ -20,7 +20,7 @@ export class AssertionError extends Error { } export function _format(v: unknown): string { - let string = globalThis.Deno + return globalThis.Deno ? stripColor(Deno.inspect(v, { depth: Infinity, sorted: true, @@ -28,11 +28,7 @@ export function _format(v: unknown): string { compact: false, iterableLimit: Infinity, })) - : String(v); - if (typeof v == "string") { - string = `"${string.replace(/(?=["\\])/g, "\\")}"`; - } - return string; + : `"${String(v).replace(/(?=["\\])/g, "\\")}"`; } function createColor(diffType: DiffType): (s: string) => string { |