class default.CallTracker
Usage in Deno
```typescript import mod from "node:node__assert.d.ts"; ```Deprecated
Deprecated
This feature is deprecated and will be removed in a future version.
Please consider using alternatives such as the `mock` helper function.
calls(exact?: number): () => void
The wrapper function is expected to be called exactly `exact` times. If the
function has not been called exactly `exact` times when `tracker.verify()` is called, then `tracker.verify()` will throw an
error.
```js
import assert from 'node:assert';
// Creates call tracker.
const tracker = new assert.CallTracker();
function func() {}
// Returns a function that wraps func() that must be called exact times
// before tracker.verify().
const callsfunc = tracker.calls(func);
```
calls<Func extends (...args: any[]) => any>(fn?: Func,exact?: number,): Func
getCalls(fn: Function): CallTrackerCall[]
Example:
```js
import assert from 'node:assert';
const tracker = new assert.CallTracker();
function func() {}
const callsfunc = tracker.calls(func);
callsfunc(1, 2, 3);
assert.deepStrictEqual(tracker.getCalls(callsfunc),
[{ thisArg: undefined, arguments: [1, 2, 3] }]);
```
The arrays contains information about the expected and actual number of calls of
the functions that have not been called the expected number of times.
```js
import assert from 'node:assert';
// Creates call tracker.
const tracker = new assert.CallTracker();
function func() {}
// Returns a function that wraps func() that must be called exact times
// before tracker.verify().
const callsfunc = tracker.calls(func, 2);
// Returns an array containing information on callsfunc()
console.log(tracker.report());
// [
// {
// message: 'Expected the func function to be executed 2 time(s) but was
// executed 0 time(s).',
// actual: 0,
// expected: 2,
// operator: 'func',
// stack: stack trace
// }
// ]
```
reset(fn?: Function): void
Reset calls of the call tracker. If a tracked function is passed as an argument, the calls will be reset for it.
If no arguments are passed, all tracked functions will be reset.
```js
import assert from 'node:assert';
const tracker = new assert.CallTracker();
function func() {}
const callsfunc = tracker.calls(func);
callsfunc();
// Tracker was called once
assert.strictEqual(tracker.getCalls(callsfunc).length, 1);
tracker.reset(callsfunc);
assert.strictEqual(tracker.getCalls(callsfunc).length, 0);
```
verify(): void
Iterates through the list of functions passed to tracker.calls() and will throw an error for functions that
have not been called the expected number of times.
```js
import assert from 'node:assert';
// Creates call tracker.
const tracker = new assert.CallTracker();
function func() {}
// Returns a function that wraps func() that must be called exact times
// before tracker.verify().
const callsfunc = tracker.calls(func, 2);
callsfunc();
// Will throw an error since callsfunc() was only called once.
tracker.verify();
```