Skip to main content

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