Files
bun.sh/test/js/node/util/node-inspect-tests/internal-inspect.test.js
jhmaster e60b3607c1 Complete rework of the majority of node:util, primarily util.inspect (#4493)
* 1st revision of new util.inspect impl. (not done)

* fix util.types.isArrayBuffer

* fix some utl tests and bugs

* fix node:tty missing primordials

* fix utl stackoverflow handling & some tests

* narrow down diff. context test

* util.inspect indirect circulars optimization

* temp workaround for buggy is...Function checks

* impl. Map/Set/Iterator entries inspection

* fix bigint & symbol objects inspection

* error inspection fixes

* misc util tests stuff

* inline getExternalValue stub

* leftovers

* util.inspect promise internals

* run bun fmt

* commit make js changes

* cut out unnecessary utl files

* reorganize utl folder structure

* remove browserify buffer check

* Try to revert git messing up uws somehow

This reverts commit 2c27e16e7d.

* commit src/js/out files again

* redo this edit too

* refresh js/out files

* Removed uws submodule

* tidy up

* unused primordials

* run fmt

---------

Co-authored-by: dave caruso <me@paperdave.net>
2023-09-27 23:51:49 -07:00

58 lines
1.8 KiB
JavaScript

import assert from "assert";
import util from "util";
test("no assertion failures", () => {
// Errors in accessors are not triggered
const obj = new Proxy(
{ x: 5 },
{
get() {
throw new Error("Error message");
},
},
);
assert.strictEqual(util.format(obj), "{ x: 5 }");
assert.strictEqual(util.formatWithOptions({ numericSeparator: true }, "%d", 4000), "4_000");
const a = {};
a.b = a;
assert.strictEqual(util.inspect(a, { compact: false }), "<ref *1> {\n b: [Circular *1]\n}");
assert.strictEqual(util.inspect(a, { compact: true }), "<ref *1> { b: [Circular *1] }");
const cause = new Error("cause");
const e2 = new Error("wrapper", { cause });
assert.match(util.inspect(e2), /\[cause\]: Error: cause\n/);
});
//! non-standard property, should this be kept?
test.skip("util.stylizeWithHTML", () => {
assert.strictEqual(
util.inspect(
{
a: 1,
b: "<p>\xA0\u{1F4A9}</p>",
"&lt;": NaN,
[Symbol("<br>")]: false,
buf: new Uint8Array([1, 2, 3, 4]),
},
{
compact: false,
stylize: util.stylizeWithHTML,
},
),
"{\n" +
' a: <span style="color:yellow;">1</span>,\n' +
' b: <span style="color:green;">&apos;&lt;p&gt;&nbsp;\u{1F4A9}&lt;&#47;p&gt;&apos;</span>,\n' +
' <span style="color:green;">&apos;&amp;lt&#59;&apos;</span>: <span style="color:yellow;">NaN</span>,\n' +
" buf: Uint8Array(4) [\n" +
' <span style="color:yellow;">1</span>,\n' +
' <span style="color:yellow;">2</span>,\n' +
' <span style="color:yellow;">3</span>,\n' +
' <span style="color:yellow;">4</span>\n' +
" ],\n" +
' [<span style="color:green;">Symbol&#40;&lt;br&gt;&#41;</span>]: <span style="color:yellow;">false</span>\n' +
"}",
);
});