MCPcopy Create free account
hub / github.com/nodejs/node / fn

Method fn

lib/internal/test_runner/mock/mock.js:439–460  ·  view source on GitHub ↗

* Creates a mock function tracker. * @param {Function} [original] - The original function to be tracked. * @param {Function} [implementation] - An optional replacement function for the original one. * @param {object} [options] - Additional tracking options. * @param {number} [options.tim

(
    original = function() {},
    implementation = original,
    options = kEmptyObject,
  )

Source from the content-addressed store, hash-verified

437 * @returns {ProxyConstructor} The mock function tracker.
438 */
439 fn(
440 original = function() {},
441 implementation = original,
442 options = kEmptyObject,
443 ) {
444 if (original !== null && typeof original === 'object') {
445 options = original;
446 original = function() {};
447 implementation = original;
448 } else if (implementation !== null && typeof implementation === 'object') {
449 options = implementation;
450 implementation = original;
451 }
452
453 validateFunction(original, 'original');
454 validateFunction(implementation, 'implementation');
455 validateObject(options, 'options');
456 const { times = Infinity } = options;
457 validateTimes(times, 'options.times');
458 const ctx = new MockFunctionContext(implementation, { __proto__: null, original }, times);
459 return this.#setupMock(ctx, original);
460 }
461
462 /**
463 * Creates a method tracker for a specified object or function.

Callers 2

benchmarkDefineFunction · 0.45
benchmarkExecuteFunction · 0.45

Calls 2

#setupMockMethod · 0.95
validateTimesFunction · 0.85

Tested by

no test coverage detected