diff options
Diffstat (limited to 'cli')
-rw-r--r-- | cli/tests/unit/console_test.ts | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/cli/tests/unit/console_test.ts b/cli/tests/unit/console_test.ts index 539c717be..af42a655b 100644 --- a/cli/tests/unit/console_test.ts +++ b/cli/tests/unit/console_test.ts @@ -225,7 +225,7 @@ Deno.test(function consoleTestStringifyCircular() { }; nestedObj.o = circularObj; - const nestedObjExpected = `{ + const nestedObjExpected = `<ref *1> { num: 1, bool: true, str: "a", @@ -245,9 +245,9 @@ Deno.test(function consoleTestStringifyCircular() { method: [Function: method], un: undefined, nu: null, - nested: [Circular], + nested: [Circular *1], emptyObj: {}, - arr: [ 1, "s", false, null, [Circular] ], + arr: [ 1, "s", false, null, [Circular *1] ], baseClass: Base { a: 1 } } }`; @@ -350,12 +350,23 @@ Deno.test(function consoleTestStringifyCircular() { return Deno.inspect(this); }, }), - "[Circular]", + "[Circular *1]", ); // test inspect is working the same assertEquals(stripColor(Deno.inspect(nestedObj)), nestedObjExpected); }); +Deno.test(function consoleTestStringifyMultipleCircular() { + const y = { a: { b: {} }, foo: { bar: {} } }; + y.a.b = y.a; + y.foo.bar = y.foo; + console.log(y); + assertEquals( + stringify(y), + "{ a: <ref *1> { b: [Circular *1] }, foo: <ref *2> { bar: [Circular *2] } }", + ); +}); + Deno.test(function consoleTestStringifyFunctionWithPrototypeRemoved() { const f = function f() {}; Reflect.setPrototypeOf(f, null); @@ -392,14 +403,14 @@ Deno.test(function consoleTestStringifyFunctionWithProperties() { assertEquals( stringify({ f }), `{ - f: [Function: f] { + f: <ref *1> [Function: f] { x: [Function], y: 3, z: [Function], b: [Function: bar], a: Map {}, - s: [Circular], - t: [Function: t] { x: [Circular] } + s: [Circular *1], + t: [Function: t] { x: [Circular *1] } } }`, ); @@ -1864,12 +1875,16 @@ Deno.test(function inspectErrorCircular() { ); assertStringIncludes( stripColor(Deno.inspect(error2)), - "Error: This is an error", + "<ref *1> Error: This is an error", ); assertStringIncludes( stripColor(Deno.inspect(error2)), "Caused by Error: This is a cause error", ); + assertStringIncludes( + stripColor(Deno.inspect(error2)), + "Caused by [Circular *1]", + ); }); Deno.test(function inspectColors() { |