• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2
3require('../common');
4
5// This test ensures that util.inspect logs getters
6// which access this.
7
8const assert = require('assert');
9
10const { inspect } = require('util');
11
12{
13  class X {
14    constructor() {
15      this._y = 123;
16    }
17
18    get y() {
19      return this._y;
20    }
21  }
22
23  const result = inspect(new X(), {
24    getters: true,
25    showHidden: true
26  });
27
28  assert.strictEqual(
29    result,
30    'X { _y: 123, [y]: [Getter: 123] }'
31  );
32}
33
34// Regression test for https://github.com/nodejs/node/issues/37054
35{
36  class A {
37    constructor(B) {
38      this.B = B;
39    }
40    get b() {
41      return this.B;
42    }
43  }
44
45  class B {
46    constructor() {
47      this.A = new A(this);
48    }
49    get a() {
50      return this.A;
51    }
52  }
53
54  const result = inspect(new B(), {
55    depth: 1,
56    getters: true,
57    showHidden: true
58  });
59
60  assert.strictEqual(
61    result,
62    '<ref *1> B {\n' +
63    '  A: A { B: [Circular *1], [b]: [Getter] [Circular *1] },\n' +
64    '  [a]: [Getter] A { B: [Circular *1], [b]: [Getter] [Circular *1] }\n' +
65    '}',
66  );
67}
68