Aller au contenu principal

mockConsole()

mockConsole(...args): MockConsoleResult

Mocks specified console methods, capturing calls for assertions.


Parameters

args: ...(ConsoleMethod | MockConsoleOptions)[]

Console methods to mock and/or configuration options.


Returns: MockConsoleResult

The object with mocks and restore function.


Since

2.0.0


Performance

Uses Map for O(1) lookup of original console methods. Stores calls in arrays for O(1) append.


Example

const { mocks, restore } = mockConsole("log", "warn");
console.log("test", 123);
console.warn("warning!");
expect(mocks.log.callCount).toBe(1);
expect(mocks.log.calls[0].args).toEqual(["test", 123]);
expect(mocks.warn.callCount).toBe(1);
restore();

const { mocks: m, restore: r } = mockConsole("log", { passthrough: true });
console.log("captured and printed");
r();

Use Cases

Spy on logs 📌

Capture console output to verify logging behavior without cluttering test output. Essential for verifying warning/error logging logic.

const { mocks, restore } = mockConsole('warn');
console.warn('Something went wrong');

expect(mocks.warn.callCount).toBe(1);
restore();

Suppress noisy output

Silence console logs during specific tests to keep test reports clean.

const { restore } = mockConsole('log', { passthrough: false });
console.log('This will not appear in terminal');
restore();

Verify log content

Assert on the actual messages logged.

const { mocks, restore } = mockConsole('error');
validateInput(null);

expect(mocks.error.calls[0][0]).toContain('Invalid input');
restore();

MockConsoleOptions

Interface

Options for mockConsole.


Since

2.0.0


Properties

passthrough?: boolean

If true, still outputs to console while capturing.

MockConsoleResult

Interface

Result of mockConsole().


Since

2.0.0


Properties

mocks: Record<string, ConsoleMock>

Mocks for each requested method, keyed by method name.

restore(): () => void

Restores all original console methods.

Returns: void

clearAll(): () => void

Clears all recorded calls without restoring.

Returns

void