Mproperty
Bun

method

test.default.MockTracker.property

property<MockedObject extends object, PropertyName extends string | number | symbol>(
object: MockedObject,
property: PropertyName,
value?: MockedObject[PropertyName]
): MockedObject & { mock: MockPropertyContext<MockedObject[PropertyName]> };

Creates a mock for a property value on an object. This allows you to track and control access to a specific property, including how many times it is read (getter) or written (setter), and to restore the original value after mocking.

test('mocks a property value', (t) => {
  const obj = { foo: 42 };
  const prop = t.mock.property(obj, 'foo', 100);

  assert.strictEqual(obj.foo, 100);
  assert.strictEqual(prop.mock.accessCount(), 1);
  assert.strictEqual(prop.mock.accesses[0].type, 'get');
  assert.strictEqual(prop.mock.accesses[0].value, 100);

  obj.foo = 200;
  assert.strictEqual(prop.mock.accessCount(), 2);
  assert.strictEqual(prop.mock.accesses[1].type, 'set');
  assert.strictEqual(prop.mock.accesses[1].value, 200);

  prop.mock.restore();
  assert.strictEqual(obj.foo, 42);
});
@param object

The object whose value is being mocked.

@param value

An optional value used as the mock value for object[propertyName]. Default: The original property value.

@returns

A proxy to the mocked object. The mocked object contains a special mock property, which is an instance of [MockPropertyContext][], and can be used for inspecting and changing the behavior of the mocked property.