aboutsummaryrefslogtreecommitdiff
path: root/test/js/node/util/bun-inspect.test.ts
blob: 308f275b9b93dcfa7b55e98e3ca29e4c7587db38 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import { describe, it, expect } from "bun:test";

describe("Bun.inspect", () => {
  it("depth < 0 throws", () => {
    expect(() => Bun.inspect({}, { depth: -1 })).toThrow();
    expect(() => Bun.inspect({}, { depth: -13210 })).toThrow();
  });
  it("depth = Infinity works", () => {
    function createRecursiveObject(n: number): any {
      if (n === 0) return { hi: true };
      return { a: createRecursiveObject(n - 1) };
    }

    const obj = createRecursiveObject(1000);

    expect(Bun.inspect(obj, { depth: Infinity })).toContain("hi");
    // this gets converted to u16, which if just truncating, will turn into 0
    expect(Bun.inspect(obj, { depth: 0x0fff0000 })).toContain("hi");
  });
  it("depth = 0", () => {
    expect(Bun.inspect({ a: { b: { c: { d: 1 } } } }, { depth: 0 })).toEqual("{\n  a: [Object ...]\n}");
  });
});