Console utilities for Jest testing framework that provide custom console implementations including BufferedConsole for capturing output, CustomConsole for formatted logging, and NullConsole for suppressing output during tests
—
Pending
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Pending
The risk profile of this skill
Jest Console provides essential console utilities for the Jest testing framework, enabling developers to control and capture console output during test execution. It offers three main console implementations: BufferedConsole for collecting console output in memory, CustomConsole for providing formatted console output with custom styling, and NullConsole for completely suppressing console output during tests.
npm install @jest/consoleimport { BufferedConsole, CustomConsole, NullConsole, getConsoleOutput } from "@jest/console";
import type { ConsoleBuffer, LogMessage, LogType, LogEntry } from "@jest/console";For CommonJS:
const { BufferedConsole, CustomConsole, NullConsole, getConsoleOutput } = require("@jest/console");import { BufferedConsole, CustomConsole, NullConsole } from "@jest/console";
// BufferedConsole - capture output in memory
const bufferedConsole = new BufferedConsole();
bufferedConsole.log("Hello, World!");
bufferedConsole.error("Something went wrong");
const buffer = bufferedConsole.getBuffer();
// buffer contains array of log entries with messages, types, and stack traces
// CustomConsole - formatted real-time output
import { WriteStream } from "tty";
const customConsole = new CustomConsole(process.stdout, process.stderr);
customConsole.log("Formatted output");
// NullConsole - suppress all output
const nullConsole = new NullConsole();
nullConsole.log("This will not appear anywhere");Jest Console is built around several key components:
Console implementation that captures all output in memory for later retrieval and analysis, ideal for testing scenarios where you need to verify console output.
class BufferedConsole extends Console {
constructor();
getBuffer(): ConsoleBuffer | undefined;
static write(
buffer: ConsoleBuffer,
type: LogType,
message: LogMessage,
stackLevel?: number
): ConsoleBuffer;
}Console implementation that outputs to custom streams with optional formatting, perfect for providing styled console output in custom environments.
type Formatter = (type: LogType, message: LogMessage) => string;
class CustomConsole extends Console {
constructor(
stdout: WriteStream,
stderr: WriteStream,
formatBuffer?: Formatter
);
getBuffer(): undefined;
}Console implementation that suppresses all output, useful for completely silencing console output during test execution.
class NullConsole extends CustomConsole {
// All console methods are no-ops
}Utility function for formatting console buffer entries into readable string output with proper styling and stack traces.
function getConsoleOutput(
buffer: ConsoleBuffer,
config: StackTraceConfig,
globalConfig: Config.GlobalConfig
): string;type LogMessage = string;
type LogType =
| 'assert'
| 'count'
| 'debug'
| 'dir'
| 'dirxml'
| 'error'
| 'group'
| 'groupCollapsed'
| 'info'
| 'log'
| 'time'
| 'warn';
interface LogEntry {
message: LogMessage;
origin: string;
type: LogType;
}
type ConsoleBuffer = Array<LogEntry>;
// From Node.js util module
interface InspectOptions {
showHidden?: boolean;
depth?: number | null;
colors?: boolean;
customInspect?: boolean;
showProxy?: boolean;
maxArrayLength?: number | null;
maxStringLength?: number | null;
breakLength?: number;
compact?: boolean | number;
sorted?: boolean | ((a: string, b: string) => number);
getters?: boolean | 'get' | 'set';
}
// From Node.js tty module
interface WriteStream extends NodeJS.WriteStream {
isTTY: boolean;
columns: number;
rows: number;
}