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