or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

buffered-console.mdcustom-console.mdindex.mdnull-console.mdoutput-formatting.md
tile.json

tessl/npm-jest--console

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

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
npmpkg:npm/@jest/console@30.1.x

To install, run

npx @tessl/cli install tessl/npm-jest--console@30.1.0

index.mddocs/

Jest Console

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.

Package Information

  • Package Name: @jest/console
  • Package Type: npm
  • Language: TypeScript
  • Installation: npm install @jest/console

Core Imports

import { 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");

Basic Usage

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");

Architecture

Jest Console is built around several key components:

  • BufferedConsole: Extends Node.js Console to capture all output in memory as structured log entries
  • CustomConsole: Extends Node.js Console to provide formatted output to custom streams with optional message formatting
  • NullConsole: Extends CustomConsole to suppress all console output completely
  • Output Formatting: Utilities for converting captured console logs into formatted, styled output strings

Capabilities

Buffered Console Implementation

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;
}

BufferedConsole

Custom Console Implementation

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;
}

CustomConsole

Null Console Implementation

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
}

NullConsole

Console Output Formatting

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;

Output Formatting

Types

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;
}