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
npx @tessl/cli install tessl/npm-jest--console@30.1.0Jest 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;
}